用户单击复选框后,如何更新MySQL表中的一个字段。我有这个:
<div style="float: right"><input type="checkbox" class="tvSync" data-toggle="toggle" data-onstyle="success" onclick="myFunction({{$spot->spotid}})"></div>
和
function myFunction(id)
{
var spotid=spotid;
$.ajax({
type:'post',
url:'updateTvSync',
data:{spotid: spotid},
success:function(msg){
console.log(msg)
}
});
}
我创建了路由/updateSync
并将其包含在控制器中:
public function updateTvSync(Request $request)
{
$id = $request->spotid;
TV::where('spotid', $id)->update(['delayed' => 1]);
}
但是当我单击复选框时,没有任何反应。这<div>
需要形式还是我在这里遗漏了什么?
var spotid=spotid;
应该是
var spotid=id;
未定义
尝试为您的复选框提供 ID 并删除 onclick 函数
<input id="{{$spot->spotid}}" type="checkbox" class="tvSync" data-toggle="toggle" data-onstyle="success">
添加此 JQuery ,您在 ajax URL 中调用了错误的路由/updateTvSync
而不是 /updateSync
。
<script>
$(document).on('click','.tvSync',function(){
var id=$(this).attr('id');
alert(id);
$.ajax({
type:'post',
url:'/updateSync',
data:{spotid: id},
success:function(msg){
console.log(msg)
}
});
});
</script>