2016-11-13 111 views
2

我使用Sweet Alert測試了一種方法,以改進由laravel框架使用Javascript警報方法發出的消息。在Laravel中使用Sweet Alert刪除方法

1 - 我下載了文件sweetalert.css和sweetalert.min.js。

2 - 所以我將文件從app.blade.php

<!-- Sweet Alert --> 
<link href="{{ asset('/dist/css/sweetalert.css') }}" rel="stylesheet"> 
<!-- Sweet Alert --> 
<script src="{{ asset('/dist/js/sweetalert.min.js') }}"></script> 

3連接 - 我創建使用JavaScript的onclick事件刪除按鈕,按下面的甜報警功能:

{!! Form::open(['method' => 'DELETE','route' => ['users.destroy', $user->id],'style'=>'display:inline']) !!} 
<button onclick=" 
swal({ 
    title: 'Esta seguro de realizar esta Acción?', 
    text: 'Si procede este usuario será eliminado!', 
    type: 'warning', 
    showCancelButton: true, 
    confirmButtonColor: '#DD6B55', 
    confirmButtonText: 'Eliminar!', 
    cancelButtonText: 'Cancelar', 
    closeOnConfirm: false, 
    closeOnCancel: false 
}, 
function(){ 
    swal('Usuario eliminado!', 'Este usuario fue eliminado de nuestros registros.', 'success'); 
});" 
    class="btn btn-danger" data-toggle="tooltip" data-placement="top" title="Eliminar usuario"> <i class="material-icons">delete</i> 
</button> 
{!! Form::close() !!} 

4 - 這是我從UserController中刪除用戶的方法:

public function destroy($id) 
{ 
    User::find($id)->delete(); 
    return redirect()->route('users.index') 
        ->with('success','User deleted successfully'); 
} 

5 - 問題o在刪除用戶時顯示警報消息。

Message generated by Sweet Alert

但自動關閉和刪除用戶,而不允許採取行動確認,是否要刪除用戶,在甜警報定義的方法。

有人可以幫助解決此問題或推薦更好的方法,因爲我使用Laravel作爲Framework。

+0

看一看這一點。 http://stackoverflow.com/questions/31136889/how-to-use-confirm-using-sweet-alert – usrNotFound

+0

你好@CannotFindSymbol,非常感謝你,但用​​這種方法消除了用戶,並不會生成通知。 –

回答

1

您正在執行按鈕單擊操作,無論您確認或取消刪除。

<a href="" class="button" data-id="{{$user->id}}">Delete</a> 

的Jquery和Ajax:

$(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('/destroy')}}", 
       data: {id:id}, 
       success: function (data) { 
           // 
        }   
      }); 
    }); 
}); 

和:

public function destroy(Request $request) 
{ 
    User::find($request->id)->delete(); 
    return redirect()->route('users.index') 
        ->with('success','User deleted successfully'); 
} 
+0

非常感謝您的回答,我試圖應用您的方法,但我無法實現它的工作。 它只生成確認是否繼續操作的窗口,但記錄不會被刪除。 錯誤如下: –

+0

POST http:// localhost/zizaco_entrust/public/destroy 500(內部服務器錯誤)send @ jquery.min.js:4ajax @ jquery.min.js:4(匿名函數)@ users ?page = 3:429l @ sweetalert.min.js:1s @ sweetalert.min.js:1g @ sweetalert.min.js:1 –

+0

錯誤與服務器有關。確保你有路線:'Route :: post('/ destroy','UserController @ destroy');' –