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>