Php 从数据库中删除记录的ajax不会在laravel中触发重定向
我正在使用ajax请求从数据库中删除一条记录。这将起作用并删除记录,但不会使用成功消息重定向用户 我正在使用sweetalert模式显示“确认删除”按钮,当您单击“是”时,模式将消失,记录已被删除,但页面不会重定向,记录不会消失,直到您刷新页面 这似乎被忽视了-Php 从数据库中删除记录的ajax不会在laravel中触发重定向,php,ajax,laravel,sweetalert2,Php,Ajax,Laravel,Sweetalert2,我正在使用ajax请求从数据库中删除一条记录。这将起作用并删除记录,但不会使用成功消息重定向用户 我正在使用sweetalert模式显示“确认删除”按钮,当您单击“是”时,模式将消失,记录已被删除,但页面不会重定向,记录不会消失,直到您刷新页面 这似乎被忽视了- return redirect()->route('users.index')->with('success', 'User deleted!'); 阿贾克斯- <script> $(document).re
return redirect()->route('users.index')->with('success', 'User deleted!');
阿贾克斯-
<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>
通过显示警报,然后在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>
$(文档).ready(函数(){
$(“.swal2确认”)。单击(函数(){
var id='{{$delete_id}}';
$.ajax({
键入:“post”,
url:'/admin/users'+'/'+id,
数据类型:“json”,
标题:{'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]')。attr('content')},
数据:{{u方法:'delete',“{u令牌”:“{{csrf\u令牌()}}”,id:id},
完成:函数(){
喷火({
键入:“成功”,
标题:“用户已删除!”,
showconfixton:false,
计时器:2500
});
setTimeout(函数(){window.location.replace('/admin/users')},2500);
}
});
});
});
您应该返回json响应,如返回响应(['url'=>route('user.index')],200)
然后在ajax成功部分,您可以这样做window.location.href=data.url
,如果您使用ajax调用,它不会将您重定向到该页面,您需要发送成功状态以响应ajax调用,然后重新加载页面位置;或者不使用ajax,只需使用url调用delete函数,它就可以像编写代码一样工作
<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>