Laravelプログラム

Laravel のForm に、複数ボタンを設置する方法

Laravel の1つのForm 中に、複数の Submitボタンを設置する方法を調べました。

 

プログラム(三択問題:santaku_mondai)の Form で、説明します。

Laravel 自体の操作については、チュートリアル(参考記事【1】)を、ご参照ください。

 

図.1 は、三択問題:santaku_mondai の解答画面です。

図.1 三択問題の画面
図.1 三択問題の画面

 

画面上に、複数の 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();でエラーが出た場合の対処メモ

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です