【问题标题】:refreshing a div without refreshing the page刷新 div 而不刷新页面
【发布时间】: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


【解决方案1】:

您应该提供有效的 url 而不是路径。所以:

.load('./includes/db_setup_form.php');

应该是

.load('/includes/db_setup_form.php');

【讨论】:

  • 试过了,无缘无故让动画更流畅,但仍然没有加载更新的内容。
  • 这样做会给我一个 404 错误,但我确定路径是正确的。
  • 好吧...那么您指定了错误的路径/url。你能浏览到像localhost/includes/db_setup_form.php这样的文件,看看会发生什么
  • 是的,我可以。它有效。但是仍然无法使用 js……这是一个谜。
  • 好的,经过一些尝试,我几乎完成了它。文件路径必须在路径之前不带 / (includes/db_setup_form.php)。现在的问题是会话变量在使用 .load() 调用 php 页面时不起作用,它们确实可以手动刷新页面。我发现唯一可行的方法是使用一些 $_GET 变量,但我更喜欢使用会话变量,你知道为什么它不能使用会话变量吗?
【解决方案2】:

您在 .load 末尾错过了 DIV ID

$('#setup_form').load('./includes/db_setup_form.php #setup_form');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-06
    • 2011-04-28
    相关资源
    最近更新 更多