【问题标题】:How to pass radio button value as route parameter in Laravel?如何在 Laravel 中将单选按钮值作为路由参数传递?
【发布时间】:2020-04-09 16:32:49
【问题描述】:

我想将选定的单选按钮值作为参数传递给 Laravel 路由。

我的路线是:

Route::resource('/datas','DataController');

从这条路线,我的目标是调用 localhost:8000/datas/{data}

我的 data.blade.php 是:

<form id="dataform" action="{{ route('datas.show')}}" method="GET">
   <table class="table">
      <tr>
         <th>Select bullet</th>
         <th>SL NO</th>
         <th>Name</th>
         <th>Age</th>
      </tr>
      @foreach ($datas $key => $data)
         <tr>
            <td><input type="radio" id="data{{$data->id}}" name="data" value={{$data->id}}></option></td>
            <td>{{$key}}</td>
            <td>{{$data->name}}</td>
            <td>{{$data->age}}</td>
         </tr>
      @endforeach
   </table>
   <button type="submit" id="edit_submit" class="btn btn-default">Show</button>                    </form>

我的表演功能是……


public function show($id)
   {
      //Code to showing data and redirect to show page
   }

我想获得这个单选按钮的价值(如下所示)。

<td><input type="radio" id="data{{$data->id}}" name="data" value={{$data->id}}>

并将其作为参数包含在下面的表单操作中

<form id="dataform" action="{{ route('datas.show')}}" method="GET">

【问题讨论】:

  • 您需要使用 javascript 从单选输入中获取值并更新表单的操作。

标签: javascript jquery html laravel laravel-6


【解决方案1】:

我已对此代码进行了一些更改。 将按钮更改为锚标记。 所以我的blade.php是:-

   <table class="table">
      <tr>
         <th>Select bullet</th>
         <th>SL NO</th>
         <th>Name</th>
         <th>Age</th>
      </tr>
      @foreach ($datas $key => $data)
         <tr>
            <td><input type="radio" id="data{{$data->id}}" name="data" value={{$data->id}}></option></td>
            <td>{{$key}}</td>
            <td>{{$data->name}}</td>
            <td>{{$data->age}}</td>
         </tr>
      @endforeach
   </table>
   <a  href="javascript:showfunction()" id="showlink" class="btn btn-default">Show</a>

我还添加了一个 javascript 函数。

<script>
    function showfunction(){
       var id = document.querySelector('input[name = "data"]:checked').value;
       var url = '{{route("admin.questions.show",":id")}}';
       url=url.replace(':id',id);
       document.location.href=url;
    }
</script>

【讨论】:

    【解决方案2】:

    您无法仅使用 HTML/Blade 来实现这一点。您需要 javascript(或 javascript 框架)才能使实时更改生效,因为表单操作路径中的参数取决于所选单选的值。

    action="{{ route('datas.show', [ 'id' => [insert id here] ])}}"
    

    【讨论】:

    • 不客气。如果此答案解决了问题,您可以单击复选标记按钮。
    猜你喜欢
    • 2021-04-14
    • 2017-07-05
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2011-03-13
    • 2022-08-03
    • 2018-06-20
    • 2023-04-08
    相关资源
    最近更新 更多