簡體   English   中英

Laravel AJAX Bootstrap Toggle Switch 不起作用

[英]Laravel AJAX Bootstrap Toggle Switch doesn't work

我目前正在從事 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.']);
}

不知道我在做什么錯 tbh。 似乎無法讓它工作。

我遇到了和你一樣的問題,通過替換不活動和活動的地方我的問題得到了解決。

在此處輸入圖片說明

var status = $(this).children().prop('checked') == true ? 'active' : 'inactive';

到這一行

var status = $(this).children().prop('checked') == true ? 'inactive' : 'active';

這是我的代碼

 < script type = "text/javascript" > $(document).ready(function() { $('.toggle').click(function() { var status = $(this).children().prop('checked') == true ? 'inactive' : 'active'; var id = $(this).children().data('id'); $.ajax({ type: 'POST', dataType: "json", url: 'statusUpdate', data: { 'status': status, 'id': id }, headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' }, success: function(data) { Swal.fire( 'GREAT!', 'Status changed successfully', 'success') location.reload(); console.log(data.success); } }); }); }) < /script>
 <input data-id="{{ $catego->id }}" class="toggle-class" data-toggle="toggle" data-on="Active" data-off="Inactive" data-onstyle="warning" data-offstyle="dark" type="checkbox" {{ $catego->status == 'active' ? 'checked' : '' }}>

路由代碼// Route::post('statusUpdate', [CategoryCRUDController::class, 'changeStatus']);

 // My controller public function changeStatus(Request $request) { $category = Category::find($request->id); $category->status = $request->status; $category->save(); return response()->json(['success'=>' status change successfully.']); }

源代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM