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

时间:2020-04-09 16:32:49

标签: javascript jquery html laravel laravel-6

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

2 个答案:

答案 0 :(得分:0)

仅靠HTML / Blade不能实现这一目标。您需要使用javascript(或javascript框架)来进行实时更改,因为表单的操作路线中的参数取决于所选收音机的值。

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

答案 1 :(得分:0)

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