我想通过jquery和ajax中的复选框切换表格中的布尔值。
因此,只要用户勾选复选框,就应该切换表格中的值。
到目前为止,我想出了这个,但我需要帮助:
$(document).ready(function(){
$("input:checkbox").change(function() {
var isChecked = $("input:checkbox").is(":checked") ? 1:0;
$.ajax({
type:'POST',
url:'/activation',
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data: $('.checkbox').serialize(),
success:function(data){
}
});
});
});
答案 0 :(得分:2)
我唯一要修改的就是回复ajax电话,让它知道发生了什么。
public function activation(Request $request)
{
$user = User::findOrFail($request->user_id);
if($user->active == 1){
$user->active = 0;
} else {
$user->active = 1;
}
return response()->json([
'data' => [
'success' => $user->save(),
]
]);
}
And now in the front-end part:
$(document).ready(function(){
$("input:checkbox").change(function() {
var user_id = $(this).closest('tr').attr('id');
$.ajax({
type:'POST',
url:'/activation',
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
data: { "user_id" : user_id },
success: function(data){
if(data.data.success){
//do something
}
}
});
});
});
答案 1 :(得分:1)
@andre的答案是正确的,但
if($user->active == 1){
$user->active = 0;
} else {
$user->active = 1;
}
这部分可以通过单行
完成 $user->active = !$user->active;
答案 2 :(得分:-1)
function toggleActive ()
{
$this->active!=$this->active;
return $this;
}
在控制器中
$model->toggleActive()->save();
答案 3 :(得分:-1)
在模型中创建方法
function toggleActive ()
{
$this->active!=$this->active;
return $this;
}
在控制器中
$model->toggleActive()->save();