2014-01-09 82 views
0

我成功地使用JSON數據動態填充表。現在的問題是如何每隔一段時間用新數據更新表格。我試圖在用新數據創建一個新表之前取消表,但它似乎不工作。當我嘗試下面的代碼時,表格沒有填充。你可以幫幫我嗎?jQuery自動更新表

function loadTable(){ 
    $('#mytable tbody tr').remove(); 
    $.getJSON('sort.php', function(data) { 
     $.each(data, function(i, val) { 
      $('#mytable tr').eq(i).after('<tr><td>'+val.value0+'</td><td>'+ 
       val.n_users+ '</td><td>'+val.value1+'/'+val.value2+ 
       '</td><td>10:59 08/01/2014</td></tr>'); 
     }); 
    }); 
    setTimeout("loadTable()",15000); 
    } 

回答

0

你的代碼沒有理由工作,是你刪除所有tr元素,然後嘗試添加基於tr元素的代碼:

$('#mytable tbody tr').remove(); 

和:

$('#mytable tr').eq(i).after(...); 

到這個時候,有沒有tr的,所以這行什麼也不做。相反,只需追加tr的,而不是試圖修改現有的:

function loadTable() { 
    $.getJSON('sort.php', function (data) { 
     $('#mytable tbody tr').remove(); 
     $.each(data, function (i, val) { 
      $('#mytable').append('<tr><td>' + val.value0 + '</td><td>' + val.n_users + '</td><td>' + val.value1 + '/' + val.value2 + '</td><td>10:59 08/01/2014</td></tr>'); 
     }); 
    }); 
    setTimeout("loadTable()", 15000); 
} 

如果行數將永遠是一樣的,你可以修改現有行,但你必須確保不要刪除:

function loadTable() { 
    $.getJSON('sort.php', function (data) { 
     $.each(data, function (i, val) { 
      $('#mytable tr').eq(i).html('<td>' + val.value0 + '</td><td>' + val.n_users + '</td><td>' + val.value1 + '/' + val.value2 + '</td><td>10:59 08/01/2014</td>'); 
     }); 
    }); 
    setTimeout("loadTable()", 15000); 
} 
+0

非常好。謝謝你的解釋 – user3155074

+0

謝謝。當您找到有用的答案時,您可以用左邊的箭頭向答案投票。如果您選擇了正確的答案,請點擊左側數字旁邊的複選標記。 –

0

試試這個:

function loadTable() { 

    $.getJSON('sort.php', function (data) { 
     $('#mytable tbody tr').remove(); 
     $.each(data, function (i, val) { 
      $('#mytable tbody').append('<tr><td>' + val.value0 + '</td><td>' + val.n_users + '</td><td>' + val.value1 + '/' + val.value2 + '</td><td>10:59 08/01/2014</td></tr>'); 
     }); 
    }); 
    setTimeout("loadTable()", 15000); 
} 

而且它是最好的,你不清空表,直到AJAX做(我移動線)

+0

這看起來應該解決OP的問題,但如果你說明了爲什麼它解決了問題,那將會很好。 –

+0

是的。 「之後」返回一個字符串,但不會更改HTML。 「append」會改變HTML。 –

+0

謝謝你的工作。 – user3155074