【发布时间】:2011-12-22 17:12:41
【问题描述】:
我正在做一个设置过程来设置一个数据库。 我试图让用户在不刷新页面的情况下完成所有阶段。 我被困在我想使用 .load() jquery 函数的地方。 这是javascript:
if(response.error == 'none')
$("#setup_form").slideToggle('fast', function() {
$('#setup_form').load('./includes/db_setup_form.php');
$("#setup_form").delay(1000).slideToggle('fast');
});
if 正在检查上一个设置阶段是否一切正常。
db_setup_form.php 的工作方式如下:
<?php if ($_SESSION['setup_progress'] == NULL) {?>
Starting phase
<?php }
else {
switch ($_SESSION['setup_progress'])
{
case "1":?>
phase 1
<?php break;
case "2":?>
phase 2
<?php break;
}
} ?>
这是主页:
<div id="setup_form">
<?php include('./includes/db_setup_form.php'); ?>
</div>
$_SESSION['setup_progress'] 变量在用户完成第一个设置阶段后给出。 问题是,如果我在第一个安装阶段完成后手动刷新页面,但 javascript 似乎无法正常工作,则一切正常,div 会在没有更新信息的情况下显示。
谢谢 据我所知,一切都应该没问题……但事实并非如此。
【问题讨论】:
-
不要忘记 $.load() 或任何 ajax 请求是异步的,因此即使请求尚未完成或请求失败,其余代码也会继续运行跨度>
标签: php javascript jquery ajax refresh