我要发送单选按钮值而不提交。
这是视图
这是查看代码
<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');
}
使用上面的代码,如果我单击状态按钮,即使我在控制台浏览器中签到,也没有任何反应。
如果我想按状态按钮“是”或“否”,它将把值发送到数据库。
答案 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进行其他选择。
希望有帮助!