PHP Laravelのフォームの値を別画面に渡す方法
環境
Windows11
php 8.2.12
composer 2.8.0
Laravel v11.26.0
使用例
1).ブラウザのURL欄に、http://localhost/laravel/public/demo
を入力するとindex.blade.phpを表示します。
2).index.blade.phpでsubmitボタンを押した時に実行されます。
MainController.phpのfun1メソッドが実行されます。
1.web.php(/routes/web.php)の定義
<?php
Route::get('/demo',function() {
return view('index');
});
Route::post('/testform','App\Http\Controllers\MainController@fun1');
2.値を送信する側のファイルの定義
値を送信する側のファイルです。(/resources/views/index.blade.php)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>submit</title>
</head>
<body >
<form action="testform" method="post">
@csrf
<input type="text" name="username">
<input type="text" name="addr">
<input type="submit" value="送信">
</form>
</body>
</html>
3.コントローラのファイル(/app/Http/Controllers/MainController.php)
サンプルコード
<?php
namespace App\Http\Controllers;
use Request;
class MainController extends Controller
{
public function fun1(Request $str)
{
$data1 = $str::all();
return view('testform',compact('data1'));
}
}
4.値を受け取る側のファイル(/resources/views/testform.php)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>submit</title>
</head>
<body >
<p>入力した名前は、{{$data1['username']}}</p>
<p>入力した住所は、{{$data1['addr']}}</p>
</body>
</html>