Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ajax成功后重新加载页面_Php_Jquery_Ajax_Refresh_Reload - Fatal编程技术网

Php ajax成功后重新加载页面

Php ajax成功后重新加载页面,php,jquery,ajax,refresh,reload,Php,Jquery,Ajax,Refresh,Reload,在成功的ajax调用之后,我在重定向/重新加载方面遇到了一些问题。 情况如下: 我已将要删除的项保存在数组中。当我点击一个按钮时,它通过ajax调用PHP文件,成功后,我需要重新加载页面。但我做这件事有点困难。 我在网上搜索,找不到有效的解决方案 我有一个PHP文件,它通过数组从数据库中逐项删除 foreach($arrayVals as $key=>$val) { //bla bla } 另外,我还有jQuery部分: $("#button").live("click",fun

在成功的ajax调用之后,我在重定向/重新加载方面遇到了一些问题。 情况如下:

我已将要删除的项保存在数组中。当我点击一个按钮时,它通过ajax调用PHP文件,成功后,我需要重新加载页面。但我做这件事有点困难。 我在网上搜索,找不到有效的解决方案

我有一个PHP文件,它通过数组从数据库中逐项删除

foreach($arrayVals as $key=>$val)
{
    //bla bla
}
另外,我还有jQuery部分:

$("#button").live("click",function(){
    $.ajax({
        url, data, type... not important
        success: function(html){
                    location.reload();
                }
    });
});
我的意思是,代码是有效的,但不好。它确实会删除项目,但不是全部,然后重新加载页面。 比如,如果我有10个项目要删除,它会删除6-7个项目,3-4个项目保持未删除状态


它的行为就像它太快地重新加载页面,就像PHP文件没有足够的时间来处理所有事情:D

当ajax完成时,您使用ajaxStop来执行代码:

$(document).ajaxStop(function(){
  setTimeout("window.location = 'otherpage.html'",100);
});
布里森德克是对的

.ajaxStop()
在所有ajax调用完成时执行回调。这是放置处理程序的最佳位置

$(document).ajaxStop(function(){
    window.location.reload();
});
用这个


为什么要使用AJAX来重新加载页面。。。你的AJAX查询(以及你为什么要使用它?)被触发一次,然后被遗忘,所以在删除完成之前不会重新加载。最有可能的情况是,您提交的要删除的项目列表不完整,或者不准确,或者您的PHP编写不正确。在任何情况下我们都需要更多的代码。杰森:我倾向于同意,但每一条规则或准则都有例外例如,会话到期。我不确定这个是否属于例外类别;没有足够的信息可以说,杰森,我理解。我想使用ajax调用然后重新加载(不仅仅是php在完成后重新加载)的唯一原因是设计。如果我将图像作为项目删除,我希望它看起来更漂亮,在删除时加载条并逐个图像分离图像,然后在完成后重新加载。:)它现在可以工作了:)我在我的PHP文件中做了一些更改,以不同的方式工作,并将我的jQuery更改为如下内容:$.ajax({…成功:函数(html){$(“.myDiv”).replaceWith(html);})$(this).ajaxStop(函数(){window.location.reload();});感谢您的努力:)它现在可以工作了,对PHP进行了一些修改,并使用了您的ajaxStop建议,谢谢:)您为什么不接受这个答案呢。所以其他人也可以从中受益。对不起,伙计,这是我第一次在这个网站上没有注意到复选标记:S@VikasNaranje,我想知道应该在哪里添加此代码?内部成功函数?它运行良好,但挑战是,它绕过了ajax成功函数中的成功消息。在现有页面中重新加载不起作用如果(data.success==true),为什么需要执行
success: function(data){
   if(data.success == true){ // if true (1)
      setTimeout(function(){// wait for 5 secs(2)
           location.reload(); // then reload the page.(3)
      }, 5000); 
   }
}