[英]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检索消息。
(旧答案没有帮助)
如果我理解正确,那么您想要:
所以你需要循环我这样想:
$.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.