2014-11-20 64 views
3

自動更新dynatable我有點此刻失去了,因爲我的代碼似乎工作,但我的表是不感興趣。的xD使用AJAX/JSON

我是從我的數據庫將數據裝載到表,我希望它是「自動更新」每三秒鐘。我的JSON數據是正確的,並且js-console顯示更新的數據。但我的表不想顯示它,所以我不得不刷新整個頁面。但是,這不是我想要做的。

這裏是我的代碼 (HTML + JS):

<script> 
$(document).ready(function() { 
    setInterval(function() {`` 
    $.ajax({ 
     url: "myStuff.php", 
     success: function(data) { 
      console.log(data); 

      myRecords = $.parseJSON(data); 
      $("#dynatable").dynatable({ 

       dataset: { 
        records: myRecords 
       } 
      }); 
     } 
    }); 
    }, 3000); 
}); 


<table id="dynatable"> 
    <thead> 
    <th>test1</th> 
    <th>test2</th> 
    </thead> 
    <tbody> 
    </tbody> 
</table> 

PHP:

$response = array(); 

    while ($zeile = mysqli_fetch_array($db_erg, MYSQL_ASSOC)) { 


    $response [] = array(
     "test1" => $zeile['wasd'], 
     "test2" => $zeile['wasdf'] 
    ); 

} 

echo json_encode($response); 

當我將數據添加到我的數據庫返回的JSON數據更新時,我看到它在JS-控制檯。問題是我的表不想顯示它,它只顯示「舊」數據。

任何建議來解決這個問題?

--------------------------------------------- ----------------

編輯:

我現在! This幫我解決了我的問題。謝謝您的幫助! :) 這裏是我的代碼:

$(document).ready(function() { 
    setInterval(function() { 
     $.ajax({ 
      url: "myStuff.php", 
      success: function(data) { 
       console.log(data); 

       var myRecords = $.parseJSON(data); 

       var dynatable = $('#dynatable').dynatable({ 
        dataset: { 
         records: myRecords 
        } 
       }).data('dynatable'); 

       dynatable.settings.dataset.originalRecords = myRecords; 
       dynatable.process(); 
      } 
     }); 
    }, 3000); 
}); 
+0

我不knwo dinatable但很少表jQuery插件需要「更新」觸發展示新成果 – 2014-11-20 18:04:15

+0

刪除parseJson,在官方文檔他們直接使用JSON – 2014-11-21 07:16:06

回答

1

此代碼也可以更新表。

+0

謝謝你們的幫助,但它不工作。數據在那裏和更新,但如果我刪除parseJSON數據將不會顯示,因爲dynatable需要一個數組來顯示數據(我猜)。如果沒有parseJSON代碼不工作,該表顯示在表格中 – Skar 2014-11-23 23:14:58

+0

davidtall 2014-11-25 14:15:15

+0

只想輸入真正的快速,上述不工作的原因是因爲dynatable認爲'settings.dataset.records'集合成爲當前表視圖(經過這麼排序,篩選工作數據集,分頁等等因此它使用'settings.dataset.originalRecords'作爲原始資源,應用其操作,然後將結果保存到'settings.dataset.records'中,覆蓋先前存在的所有內容。如果你想改變你的表格的源數據集,請替換'setting.dataset.originalRecords'並調用'process()',剩下的就是爲你處理的。 – jangosteve 2016-09-29 13:52:56