我正在使用ajax时间函数来保存新数据并在数据库中找到新数据时附加它。但是每半秒,整个数据只会附加新数据.Plz帮助。
Php函数(load.php)
$tocom=$_POST['tocom'];
$sql=mysqli_query($db3->connection,"SELECT * FROM chat_com where to='$tocom' ORDER by time DESC");
while($row=mysqli_fetch_array($sql)){
$tocomr=$row['tocom'];
$text=$row['text'];
echo $text;
}
Ajax功能就在这里。
function chat_com_one(id, name) {
$('#chatcom').show('fast');
(function chatcom_load_one(id, name) {
$.post('load.php', {tocom:id}, function(data) {
$('#chat_win').append(data);
setTimeout(chatcom_load_one(id, name), 500);
});
}(id, name));
}
答案 0 :(得分:0)
如果没有看到任何if()
来检查是否尚未添加元素,则现在使用WHERE
子句来限制查询的结果。或者只是删除旧内容并将新内容作为一个整体而不是附加(但这没有效果)。
答案 1 :(得分:0)
您要么需要更改SQL语句,要么不进行追加,只需重写整个div。
答案 2 :(得分:0)
使用setTimeout
更改setInterval
并看到变化:
function chat_com_one(id, name) {
$('#chatcom').show('fast');
(function chatcom_load_one(id, name) {
$.post('load.php', {tocom:id}, function(data) {
$('#chat_win').append(data);
setInterval(chatcom_load_one(id, name), 500);
});
}(id, name));
祝你好运