В настоящее время у меня есть 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);
Мой вопрос: как я могу остановить его, повторяя одно и то же сообщение? Я хочу, чтобы он отображался, если появились новые данные.
Если я понял правильно, вы хотите:
поэтому вам нужно зациклиться, я думаю вот так:
$.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>
!
Update:
Как выглядит ваш ответ? Самый простой способ - обновить refID
и установить его в наибольшем msg_id
в вашем ответе. Таким образом, вы всегда будете получать только новые данные.
Я бы отредактировал PHP-код, который создает HTML-код в этом формате:
<li id="msg-msg_id"><div>user avatar </div><div> user posted msg</div></li>
где вы заменяете msg_id
фактическим идентификатором, если сообщение (например, 200), например
<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
до идентификатора полученного в данный момент сообщения, а в следующий раз, когда функции будут выполнены, он будет получать сообщения от этого идентификатора.
(Старый ответ не помог)
prepend()
наhtml()