首页 > 解决方案 > 在 laravel 上使用 SWAL 和 ajax 执行并确认删除

问题描述

当我单击 swal 上的按钮确认时,没有任何反应,我不知道问题是 ajax 代码还是其他问题,但是当我从 swal 代码中删除 ajax 代码时它工作正常并显示 sweetalert 所以我认为问题来自 ajax

<script>
function deleteData(id) {
    swal({
            title: "Suppression",
            text: "Veuillez confirmer la suppression",
            type: "warning",
            showCancelButton: true,
            confirmButtonText: "Confirmer",
            cancelButtonText: "Annuler",
            reverseButtons: true
        }.then(function () {
            var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
            $.ajax({
                type: "DELETE",
                url: "{{url('eventment/type')}}/" + id,
                data: {
                    _token: CSRF_TOKEN
                },
                dataType: "JSON",
                success: function (results) {

                    if (results.success === true) {
                        swal("Done!", results.message, "success");
                    } else {
                        swal("Error!", results.message, "error");
                    }
                } //success
            });
        })

    ) //swal
} //deleteData
</script>

删除按钮

<button class="btn btn-danger" onclick="deleteData({{$type->id}})" >Supprimer</button>

路由文件

Route::delete('eventment/type/{id}','TypeController@destroy')->name('type.destroy');

控制器

public function destroy($id)
{
    $type = EventType::where('id', $id)->delete();

    return redirect()->to(route('admin.type.index'))->withFlashSucces('Le Type A Bien Etait Supprimé');
}

标签: javascriptjqueryajaxlaravelsweetalert

解决方案


你可以在没有 ajax 的情况下做到这一点。首先你的按钮使它成为一个表单


<form id="del_event" action="{{ route('type.destroy',$type->id) }}" method="post"style="display: inline;">
{!! method_field('delete') !!}
{{ csrf_field() }}
 <button class="btn btn-danger" type="submit" id="del_id">Supprimer</button>

</form

按钮在单击调用下面的函数时有一个 id “del_id”

<script>
        $("#del_id").on('click', function (e) {
            e.preventDefault();
            swal({
                title: "Suppression",
            text: "Veuillez confirmer la suppression",
            type: "warning",
            showCancelButton: true,
            confirmButtonText: "Confirmer",
            cancelButtonText: "Annuler",
            }).then((result) => {
                if(result) {
                    $("#del_event").submit();
                }
            }
        )
            ;
        });
    </script>

你的销毁功能

 $type=EventType::find($id);
 $type->delete();``

推荐阅读