【发布时间】:2021-01-27 01:41:38
【问题描述】:
我目前正在做一个 Laravel 项目。在管理视图中,我得到了用于激活/停用用户的 Bootstrap Toggle。除了我无法将复选框更改为切换之外,一切都运行良好。当我将 class="toggle-class" 更改为 data-toggle="toggle" 时,会出现切换,但数据将不再发送到数据库,因此代码将不再工作......
这就是我所拥有的
这就是我想要的
我的管理员视图
<input id="{{$user->id}}" class="toggle-class"
type="checkbox" data-onstyle="success" data-offstyle="danger"
data-on="Active" data-off="Inactive"
{{ $user->status ? 'checked' : '' }}
onclick="changeStatus(event.target, {{ $user->id }});">
function changeStatus(_this, id) {
var status = $(_this).prop('checked') == true ? 1 : 0;
let _token = $('meta[name="csrf-token"]').attr('content');
$.ajax({
url: '{{route("change.status")}}',
type: 'POST',
data: {
_token: _token,
id: id,
status: status
},
success: function(data){
if (data.type == "error") {
$('#message').html("<div class='alert alert-danger card h2'>"+data.fail+"</div>");}
else {
$('#message').html("<div class='alert alert-success card h2'>"+data.success+"
</div>");
}}
});
}
我的控制器中的方法
public function changeStatus(Request $request)
{
$user = User::find($request->id);
$user->status = $request->status;
$user->save();
return response()->json(['success'=>'Status change successfully.']);
}
不知道我做错了什么。似乎无法正常工作。
【问题讨论】:
-
如果未选中输入,则不会随请求一起发送。
-
也试过了,没什么变化
-
您在
dd($request->all());上得到了什么?选中和未选中时 -
我还没有实现 dd($request->all());在我的代码中,它从来不需要
-
我知道,dd 是用来调试的。我只是想看看你在请求中得到了什么
标签: javascript php ajax laravel bootstrap-switch