使用Sweet Alert Laravel 5.5进行删除前确认

时间:2017-10-26 09:31:32

标签: laravel crud sweetalert laravel-5.5

我希望甜蜜提示框不会删除。

但是找不到ajax的id

路线

Route::get('room/delete/{id}', 'RoomList@destroy')->name('roomdelete');

查看文件 rooms-list.blade.php

@foreach($rooms as $room)
<tr>
    <td>{!! $room->room_id !!}</td>
    <td>{!! $room->hotel_id !!}</td>
    <td>{!! $room->room_name !!}</td>
    <td>
        <a href="" class="button" data-id="{!! $room->room_id !!}"> <i class="fa fa-close text-danger"></i> </a></td>
</tr>

@endforeach

SweetAlert 以上Js代码

<script>
$(document).on('click', '.button', function (e) {
    e.preventDefault();
    var id = $(this).data('id');
    swal({
            title: "Are you sure!",
            type: "error",
            confirmButtonClass: "btn-danger",
            confirmButtonText: "Yes!",
            showCancelButton: true,
        },
        function() {
            $.ajax({
                type: "POST",
                url: "{{url('room/delete')}}",
                data: {id:id},
                success: function (data) {

                    }
            });
    });
});


</script>

控制器文件 RoomList.php

public function destroy($id) {

        $rooms = Room::find($id);
        $rooms->delete();
        return redirect()->back()->with('deleted', 'Delete Success!');

    }

点击删除按钮不起作用

最好的问候

1 个答案:

答案 0 :(得分:0)

首先,您有一个GET路由,并且您在此处发送POST请求,因此请先将您的ajax方法更改为GET,如下所示:

<script>
$(document).on('click', '.button', function (e) {
    e.preventDefault();
    var id = $(this).data('id');
    swal({
            title: "Are you sure!",
            type: "error",
            confirmButtonClass: "btn-danger",
            confirmButtonText: "Yes!",
            showCancelButton: true,
        },
        function() {
            $.ajax({
                type: "GET",
                url: "{{url('room/delete/')}}+id", // since your route has /{id} 
                data: {id:id},
                success: function (data) {

                    }
            });
    });
});


</script>

我也不确定$(document).on('click', '.button', function (e)我想它应该是这样的:

$('.button').on('click', '.button', function (e)

如果您还有任何问题,请告诉我。