简短而甜美:
寻找一种方法来调用PHP文件并使用jQuery和/或Ajax显示进度.调用PHP文件upgrade.PHP?step = 1,然后将返回的输出附加到#upgradestatus.完成之后,将调用upgrade.PHP?step = 2并附加输出,直到完成指定数量的步骤.
说明:
我正在尝试为在PHP中运行的软件创建一个插件.该插件将调用PHP文件中的每个步骤以升级每个文件,等等.我希望能够在页面上显示进度,而无需重新加载它以向用户显示已完成的操作以及处理的位置.
for (var s=0; s<2; s++){
$('#upgraderesult').load('upgrade.PHP', 'step=' + s, function() {
$('#upgradestatus').append('Upgrade Step ' + s + ' Completed');
});
}
我也尝试使用.ajax(),并且通过这两种方法,我很快就了解到,作为异步对象,要弄清楚这一点会有些棘手.
我的想法是创建一个FOR循环,该循环将循环执行所有步骤.然后,该for循环将生成必要的jQuery / Ajax代码,该代码将与状态消息一起追加到现有div #upgradestatus上.我希望它附加加载在#upgraderesult中的结果,但为了简单起见,我仅添加了“ Upgrade Step X Complete”.
因此,现在我陷入了困境,并认为我可能只需要使用PHP生成正确的jQuery / Ajax代码,但我想检查一下是否有人对如何以其他方式完成此操作有任何意见或建议,甚至我在想这个完全错误.
我想要的是能够根据该过程的步骤来调用PHP文件,然后在浏览器中向用户显示进度…事实证明这比我想象的要困难得多.
感谢您的任何意见或建议/建议,我非常感谢!
解决方法:
每个人都感谢您的输入,在Freenode #jQuery中一些人的帮助下,我们提出了一个效果很好的解决方案:
var numSteps = 2;
function loadStepAjax(s) {
$.ajax('upgrade.PHP', {
type: 'GET',
dataType: 'html',
data: {
step: s
},
success: function(data) {
$('#upgradestatus').append(data);
if (s < numSteps)
loadStepAjax(s+1);
}
});
}
loadStepAjax(1);
我们没有使用FOR循环,而是创建了一个函数loadStepAjax,然后在回调中使用了IF语句来确定是否再次调用该函数.
总是很简单,不是吗!不过,感谢大家的投入,我们非常感谢.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。