-2

如果在数据库中找到新数据,我正在使用 ajax 时间函数来不断检查新数据并附加它。但是每半秒,整个数据都会被附加,而不是仅附加新数据。请帮助。

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));

}

4

3 回答 3

0

更改setTimeoutsetInterval 查看更改:

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));

祝你好运

于 2012-11-30T08:31:30.370 回答
0

如果没有看到任何if()检查元素是否尚未添加,则使用 nowWHERE子句来限制查询的结果。或者只是删除旧内容并将新内容作为一个整体而不是附加(但这无效)。

于 2012-11-29T19:54:08.147 回答
0

好吧,要么你需要改变你的 SQL 语句,要么不做追加,只重写整个 div。

于 2012-11-29T19:54:17.090 回答