2017-05-07 32 views
0

我有一个html代码,下面基本拉动staff-status.php到html。

<div class="table-responsive"> 
    <?php 
    include '/sql/staff-status.php'; 
    ?> 
</div> 

我还有一个脚本,每10秒更新一次mysql。

<script> 
    setInterval("update()", 10000); 
    function update() { 
    $.post("/sql/update.php"); 
    } 
</script> 

当我更改上面的脚本以包含staff-update.php以每10秒刷新一次update.php完成时,它不起作用。我知道它必须做一些回调函数,你可以在你的代码中包含一个回调函数,以在update.php完成时重新载入status-staff.php,但我不熟悉编码语法。谁能帮忙?

<script> 
    setInterval("update()", 10000); 
    function update() { 
    $.post("/sql/update.php"); 
    $.post("/sql/status-staff.php"); 
    } 
</script> 

回答

0

你可以试试这个https://api.jquery.com/deferred.then/

$.post("/sql/update.php").then(function() { 
$.post("/sql/status-staff.php"); 
}); 
+0

它不起作用,以及hudolfhess。你还有其他建议吗? – MasterJoe

+0

你正在使用什么版本的jQuery?尝试使用“完成”而不是“然后”。 – hudolfhess

0

你能试试这个

$.post("/sql/update.php").then(function() { 
     $.post("/sql/status-staff.php").then(function(html){ 
      $('.table-responsive').html(data) 
     }); 
}); 
+0

它不起作用阿甘。任何其他建议? – MasterJoe

+0

你可以检查网络标签ID阿贾克斯被击中,如果是的话,你会得到什么回应 –

+0

根据网络标签,“update.php”是射击,但不是“status-staff.php”。 – MasterJoe

0

所以我就这通过使它们作为两个独立的脚本工作:

<script> 
    setInterval("update()", 10000); 
    function update() { 
    $.post("/sql/update.php"); 
    } 
</script> 

<script> 
    (function updateStafftable() { 
     $.get('sql/staff-status.php', function(data) { 
     // Now that we've completed the request schedule the next one. 
     $('.table-responsive').html(data); 
     setTimeout(updateStafftable, 10000); 
     }); 
    })(); 
    </script> 

问题是:我该如何结合把他们合并成一个?有两个脚本似乎是多余的和繁琐的家务。