繁体   English   中英

jQuery在自动获取php文件数据库之前

[英]jQuery prepend a auto fetch php file database

目前,我有一个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);

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

更新:

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

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

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

如果消息(例如200)(例如200)将msg_id替换为实际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. 如果不是重复,则添加新消息;
  2. 保留其他独特的信息

所以你需要循环我这样想:

$.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>标记中!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM