2017-05-07 56 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> 

問題是:我該如何結合把他們合併成一個?有兩個腳本似乎是多餘的和繁瑣的家務。