我现在有点迷茫,因为我的代码似乎可以工作,但我的 table 不感兴趣。 xD
我正在将数据从我的数据库加载到一个表中,我希望它每三秒“自动更新”一次。我的 JSON 数据是正确的,js 控制台显示更新后的数据。但是我的表不想显示它所以我必须刷新整个页面。然而,这不是我想要做的。
这是我的代码 (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);
});
最佳答案
这段代码也可以更新表格。
<script>
$(document).ready(function() {
var mytable = $("#dynatable");
setInterval(function() {
$.ajax({
url: "do.php",
success: function(data) {
myRecords = $.parseJSON(data);
mytable.dynatable({
dataset: {
records: myRecords
}
});
mytable.data('dynatable').settings.dataset.records = myRecords;
mytable.data('dynatable').dom.update();
console.log(data);
}
});
},
1000);
});
</script>
关于javascript - 使用 AJAX/JSON 自动更新动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046425/