复选框更改时更新DB字段 - AJAX

时间:2018-01-17 09:55:18

标签: javascript php jquery mysql ajax

如何在用户点击复选框后更新MySQL表格中的一个字段。 我有这个:

$raw1 -replace '(?s)extends.*?{', '{'

<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]); } 是否需要处于形式中,或者我在这里遗漏了什么?

2 个答案:

答案 0 :(得分:4)

 var  spotid=spotid; 

应该是

 var  spotid=id; 

spotid未定义

答案 1 :(得分:0)

尝试为您的复选框提供ID并删除onclick功能

<input id="{{$spot->spotid}}" type="checkbox" class="tvSync" data-toggle="toggle" data-onstyle="success">

添加此JQuery,您调用错误的路由/updateTvSync而不是/updateSync。在你的ajax网址。

<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>