Laravel のForm に、複数ボタンを設置する方法
Laravel の1つのForm 中に、複数の Submitボタンを設置する方法を調べました。
プログラム(三択問題:santaku_mondai)の Form で、説明します。
Laravel 自体の操作については、チュートリアル(参考記事【1】)を、ご参照ください。
図.1 は、三択問題:santaku_mondai の解答画面です。
画面上に、複数の Submitボタンがあります。
- 解答ボタン(1,2,3)
- リセットボタン(reset)
1.ルート(routes)
- /www/var/santaku_mondai/routes/web.php
Route::post('/', 'QuestionsController@judge')->name('judge');
2.ビュー(views)
- /www/var/program_name/resources/views/questions/home.blade.php
<form name="input_form" method="post" action="/"> @csrf <input class="btn btn-primary" type="submit" name="first" value="1"> <input class="btn btn-primary" type="submit" name="second" value="2"> <input class="btn btn-primary" type="submit" name="third" value="3"> </form> <form name="input_form_1" method="post" action="/"> @csrf <input class="btn btn-warning" type="submit" name="reset" value="reset"> </form>
3.コントローラー(Controllers)
- /www/var/program_name/app/Http/Controllers/QuestionsController.php
<?php namespace App\Http\Controllers; //use Illuminate\Http\Request; use Request; class QuestionsController extends Controller { public function judge() { if (Request::get('reset')) { リセット処理 } if (Request::get('first')) { 1が選択されたときの処理 } elseif (Request::get('second')) { 2が選択されたときの処理 } elseif (Request::get('third')) { 3が選択されたときの処理 }
参考記事
Laravel
【1】ララ帳:はじめての LARAVEL 5.6
Google検索「blade ボタン処理」
【2】2016.05.06:Qiita:LaravelのFormで複数Submitボタンを設置したいときのハンドリング方法
【3】2016.08.29:cly7796.net:Laravelでform内に複数のボタンを設置する
Google検索「laravel form button 複数」
【4】2018.04.16:teratail:Laravelで複数の入力画面から値を取得する場合のバリデーションの実装方法
Google検索「Non-static method Illuminate\Http\Request::get() should not be called statically」
- Laravel Request::get で、エラー
【5】2016.06.24:Qiita:laravelのRequestのrequest::all();でエラーが出た場合の対処メモ