如何只追加新数据而不是全部?

时间:2012-11-29 19:51:08

标签: php jquery ajax

我正在使用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));

}

3 个答案:

答案 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));
祝你好运