【发布时间】:2011-12-14 10:19:22
【问题描述】:
在成功调用 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 来重新加载页面...看起来 UI 很差。
-
您的 AJAX 查询(以及为什么要使用一个?)被触发一次然后被遗忘,因此在删除完成之前它不会重新加载。很可能您提交的要删除的项目列表不完整,或者不准确,或者您的 PHP 编写不正确。无论如何,我们都需要更多代码。
-
Jason:我倾向于同意,但每条规则或准则都有例外。 ;-) 例如会话到期。我不确定这个是否属于例外类别;信息不足。
-
杰森,我明白这一点。我想使用 ajax 调用然后重新加载(而不仅仅是完成后重新加载 php)的唯一原因是设计。如果我将图像作为项目删除,我希望它看起来更漂亮,带有加载栏并在删除时逐个图像分离,然后在完成后重新加载。 :)
-
它现在可以工作了 :) 我对我的 PHP 文件进行了一些更改以以不同的方式工作,并将我的 jQuery 更改为如下所示: $.ajax( { ... success:function(html ){ $(".myDiv").replaceWith(html); } }); $(this).ajaxStop(function(){ window.location.reload(); });感谢您的努力:)
标签: php jquery ajax refresh reload