Я строю временную шкалу AJAX для сообщений на стене, и у меня есть следующая функция, чтобы проверять наличие новых сообщений и затем публиковать новые на стене, подобно тому, как работает Twitter:
wall_posts.php
$news = tz::shared()->news->getNew(25);
<div id="wall_posts">
<?php foreach ($news as $news_post) { ?>
<div class="wall_post"><?php echo $news_post['message']; ?></div>
<?php } ?>
</div>
JQuery:
function checkForNewPosts() {
// This represents the last record in the table AKA the "most recent" news
var lastCustomerNewsID = <?php echo $news[0]['id']; ?>;
$.ajax({
url: "example.com/ajax.php",
method: "post",
data:{
lastCustomerNewsID: lastCustomerNewsID,
},
dataType:"text",
success:function(data)
{
$('#wall_posts').prepend(data);
}
});
}
setInterval(checkForNewPosts, 10000);
Приведенный выше массив новостей PHP с индексом 0 указывает на то, что это последний / последний идентификатор в массиве / таблице
PHP (ajax.php):
if ($_POST) {
$lastCustomerNewsID = $_POST['lastCustomerNewsID'];
$new_posts = tz::shared()->news->getNewForWall($lastCustomerNewsID);
$output = '';
if ($new_posts) {
foreach ($new_posts as $new_post) {
$output .= "<div class='wall_post'>";
$output .= $new_post['message'];
$output .= "</div>";
}
} else {
}
echo $output;
}
Примечание. Функция getNewForWall извлекает записи с идентификатором, превышающим аргумент, переданный в
Это прекрасно работает при получении нового сообщения, однако проблема в том, что мне нужно обновлять «последний идентификатор» до «самого нового идентификатора» из новых записей, возвращаемых в ajax.php при каждом запуске функции, потому что в настоящее время один раз он захватывает самые новые сообщения в первый раз, он постоянно распознает их как новые.
Как я могу передавать новейший "последний идентификатор" из массива в ajax.php обратно в функцию AJAX при каждом запуске? Могу ли я передать отдельную переменную обратно в функцию AJAX?
Спасибо!