如何在laravel中发送而不提交单选按钮值?

时间:2019-07-09 01:49:09

标签: php jquery ajax laravel

我要发送单选按钮值而不提交。

这是视图

enter image description here

这是查看代码

<table>
        <thead>
            <tr>
                <th>No.</th>
                <th>Name</th>
                <th><center>Presence</center></th>
            </tr>
        </thead>
        <tbody>
                @php
                 $i=1;
                @endphp
            <tr>
                <td>{{$i}}</td>
                <td>TEST</td>
                <td>

                    <input type="radio" id="radio1" name="presence" value="Y">
                    <label for="radio1"><font color="#00B01D"><i class="fas fa-check"></i> Yes</font></label>
                    <input type="radio" id="radio2" name="presence" value="N">
                    <label for="radio2"><font color="#FF0000"><i class="fas fa-times"></i> No</font></label>
                </td>

            </tr>
            @php
                $i++;
            @endphp
        </tbody>
    </table>

<script>  
            $(document).ready(function(){  
                    $('input[type="radio"]').click(function(){  
                        var presence = $(this).val();  
                        $.ajax({  
                            url:"http://localhost/admin/presence/add",  
                            method:"POST",  
                            data:{
                                  presence:presence
                                  },  
                            success:function(data){  

                            }  
                        });  
                    });  
            });  
    </script>  

这是控制器

public function addprespost(Request $request){
        $dataz = [
            'presence' => $request->input('presence'),
        ];
        DB::table('presence')->insert($dataz);
        return redirect('/admin/presence/add');
    }

使用上面的代码,如果我单击状态按钮,即使我在控制台浏览器中签到,也没有任何反应。

如果我想按状态按钮“是”或“否”,它将把值发送到数据库。

1 个答案:

答案 0 :(得分:3)

在输入中为csrf添加隐藏令牌。

像这样

<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="radio" id="radio1" name="presence" value="Y">
<label for="radio1"><font color="#00B01D"><i class="fas fa-check"></i> Yes</font></label>
<input type="radio" id="radio2" name="presence" value="N">
<label for="radio2"><font color="#FF0000"><i class="fas fa-times"></i> No</font></label>

然后在您的ajax中删除本地主机,仅保留路由,然后添加csrf

$.ajax({  
  url:"/admin/presence/add",  
  method:"POST",  
  data:{
   '_token': $('input[name=_token]').val(),
   'presence':presence
  },  
  success:function(data){  

  }  
});  

我不知道收音机是否具有点击事件,如果单击了收音机,您也可以尝试使用one进行其他选择。

希望有帮助!