gpt4 book ai didi

javascript - 当数据库中存在新行时自动更新 div

转载 作者:行者123 更新时间:2023-11-29 21:13:07 24 4
gpt4 key购买 nike

我试图检索用户访问页面之前表中存在的所有行,然后使用自用户访问页面以来已添加到表中的任何数据行更新 div (类似于 Whatsapp,整个 session 可见,新消息添加到底部)。

这是我迄今为止使用 Ajax 所得到的结果,但我不知道从这个阶段我将走向何方。目前,它仅显示最新的记录(如果我在第二个文件中手动设置时间戳),但不会显示其之前的所有其他记录。理想情况下,我应该将时间发布到第二个文件中。

如何修改代码以获得我想要的功能?

显示(autoload.php)

var time = (new Date).getTime();
var interval = 1000; // 1000 = 1 second, 3000 = 3 seconds
function doAjax() {
$.ajax({
type: 'POST',
url: 'autoload2.php',
dataType: 'json',
data: 'time='+time,
success: function (data) {
$('.inner').append(data);
},
complete: function (data) {
setTimeout(doAjax, interval);
}
});
}
setTimeout(doAjax, interval);

获取数据(autoload2.php)

$time = $_POST['time'];
$results = mysql_query("SELECT post_name FROM posts WHERE postime > $time limit 1");
$row = mysql_fetch_assoc($results);
$res = $row['post_name'];
echo json_encode($res);

注意:上面用于查询的时间不起作用,只有当它与时间戳进行硬编码时才起作用。

最佳答案

我认为你需要搬家

var time = (new Date).getTime();

到你的函数

因为你的时间变量没有改变

var interval = 1000;  // 1000 = 1 second, 3000 = 3 seconds
function doAjax() {
var time = (new Date).getTime();
$.ajax({
type: 'POST',
url: 'autoload2.php',
dataType: 'json',
data: 'time='+time
}).done(function(response){
console.log(response);
});
}

setInterval(doAjax, interval);

在 PHP 中:

$data = Array('name' => 'name of last row');
header('Content-Type: application/json');
echo json_encode($data);

关于javascript - 当数据库中存在新行时自动更新 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com