2017-05-07 7 views
0

私は基本的にstaff-status.phpをhtmlに引っ張る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> 

私は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

これはうまく動作しません。他のアイデアはありますか? – MasterJoe

+0

あなたはどのバージョンのjQueryを使用していますか?代わりに 'then'を使用してみてください。 – hudolfhess

0

あなたが試すことができ、この

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

Agamは動作しません。他の提案はありますか? – MasterJoe

+0

あなたはネットワークタブのIDをチェックすることができます。ajaxがヒットしていますか?はいの場合はどのような応答を受けていますか? –

+0

ネットワークタブによると、 "update.php"は起動しますが、 "status-staff.php"ではありません。 – MasterJoe

0

だから私は、この2つの別々のスクリプトとしてそれらを持っていることによって動作するようになった:

<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> 

質問:どのように私は結合するのですか? 1つにそれらをe? 2つのスクリプトを用意することは、ハウスキーピングのために冗長で扱いにくいようです。

関連する問題