ajax для удаления записи из базы данных не запускает редирект в laravel - PullRequest
0 голосов
/ 01 октября 2019

Я удаляю запись из моей базы данных, используя ajax-запрос. Это работает и удаляет запись, но затем не перенаправляет пользователя с сообщением об успешном завершении.

Я использую модальный подсластитель для отображения кнопки подтверждения удаления, и когда вы нажимаете да, модальный режим исчезает и записьбыл удален, но страница не перенаправляется, и запись не исчезает до тех пор, пока вы не обновите страницу.

Это, кажется, игнорируется -

return redirect()->route('users.index')->with('success', 'User deleted!');

AJAX -

<script>
 $(document).ready(function() { 
  $(".swal2-confirm").click(function(){
    var id = '{{ request()->delete_id }}';
    var route = '{{ request()->route }}';
    $.ajax({
      type:'post',
      url:'/admin/' + route + '/' + id,
      dataType: 'json',
      headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
      data: {'_method':'delete', "_token": "{{ csrf_token() }}", id:id},
    });
  });
});
</script>

Контроллер -

public function destroy($id)
    {
      //Delete user from database
      User::find($id)->delete();

      return redirect()->route('users.index')->with('success', 'User deleted!');
    }

1 Ответ

0 голосов
/ 03 октября 2019

Я понял это, показав предупреждение и перезагрузив страницу в моем ajax -

<script>
$(document).ready(function () {
  $(".swal2-confirm").click(function () {
    var id = '{{ $delete_id }}';
    $.ajax({
      type: 'post',
      url: '/admin/users' + '/' + id,
      dataType: 'json',
      headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
      data: { '_method': 'delete', "_token": "{{ csrf_token() }}", id: id },
      complete: function () {
        swal.fire({
          type: 'success',
          title: 'User Deleted!',
          showConfirmButton: false,
          timer: 2500
        });
        setTimeout(function () { window.location.replace('/admin/users') }, 2500);
      }
    });
  });
});
</script>
...