Я тестирую метод с использованием Sweet Alert, чтобы улучшить сообщения, отправляемые методом предупреждения Javascript с помощью инфраструктуры laravel.
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 — Я создал кнопку удаления, используя событие onclick в Javascript и следующую функцию Sweet Alert:
{!! 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 — проблема возникает при удалении пользователя, отображается сообщение с предупреждением.
Но автоматически закрывает и удаляет пользователя, не позволяя предпринять подтверждающие действия, удалять или нет пользователя, методом, определенным в Sweet Alert.
Кто-то, кто может помочь решить эту проблему или порекомендовать лучший метод, так как я использую Laravel в качестве платформы.
Вы выполняете действие по нажатию кнопки независимо от того, подтвердите ли вы или отменили удаление.
<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');
}
Других решений пока нет …