如何在 Laravel 中将单选按钮值作为路由参数传递?

How to pass radio button value as route parameter in Laravel?

我想将选定的单选按钮值作为参数传递给 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">

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

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

我对这段代码做了一些修改。 将按钮更改为锚标记。 所以我的 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>