jQuery预置了一个自动提取php文件数据库

时间:2010-05-29 15:43:11

标签: php jquery mysql

目前我有一个php文件,它从mysql中获取数据以显示在网站中。

我正在使用输入值作为$ _GET参数发送到php文件以确定要显示的数据。

mysql_query("SELECT * FROM messages WHERE msg_id>'$refID' ORDER BY msg_id DESC");
//$refID is input value

一旦加载,

我正在使用此jquery代码在网站上显示

setInterval(
function ()
{
$.get('load.php?id='+refID, function(html) { 
  $("ol#update").prepend(html);
  $("ol#update li:first").slideDown("slow");
});
}, 10000);

我的问题是如何阻止它继续重复相同的消息?如果有新数据,我希望它显示。

2 个答案:

答案 0 :(得分:1)

<强>更新

您的回复如何?最简单的方法是更新refID并在响应中将其设置为最大msg_id。这样,您将始终只获取新数据。

我会编辑以这种格式生成HTML代码的PHP代码:

<li id="msg-msg_id"><div>user avatar </div><div> user posted msg</div></li> 

如果邮件(例如200),例如

,则用实际ID替换msg_id
<li id="msg-200"><div>avatar</div><div>my message</div></li> 

然后你可以使用jQuery执行以下操作:

$.get('load.php?id='+refID, function(html) {
  if(html) { // html will be empty (I guess?) if there are no new messages
      refID = $('<div>' + html + '</div>').find('li:first').attr('id').split('-',2)[1];
      $("ol#update").prepend(html);
      $("ol#update li:first").slideDown("slow");
  }
});

这会将refID更新为当前检索到的消息的ID,下次执行这些功能时,它将从此ID中检索消息。


(旧答案没有帮助)

答案 1 :(得分:1)

如果我理解正确,你想要:

  1. 如果不是dupe,则添加新消息;
  2. 保留其他独特讯息
  3. 所以你需要循环我想这样:

    $.get('load.php?id=' + refID, function(html) {
        var check = false;
        $("ol#update li").each(function() {
            if (this.id == refID) check = true;
        });
        if (check == false) 
        $("ol#update").prepend('<li id="' + refID + '">' + html + '</li>');
        $("#" + refID).slideDown("slow");
    });
    

    假设你有

    <ol id="update">
    <li id="200">The Brown Fox Jump Over the Lazy Dog</li>
    ....
    </ol>
    

    并假设您的 HTML 响应未包含在<LI>代码中!