Перезагружайте данные AJAX каждые X минут / секунд, jQuery

Я запрограммировал CMS, у которого есть журнал того, кто недавно вошел в систему. В настоящее время эти данные загружаются на вкладку пользовательского интерфейса jQuery через Ajax. Я хотел бы поместить эту информацию в боковую панель на главной странице и загрузить ее через AJAX каждые 30 секунд (или некоторый установленный период времени).

Как мне это сделать? Должен ли PHP-запрос кодироваться JSON? Я довольно новичок в данных AJAX и JSON.

Вот PHP, который я сейчас использую, чтобы извлекать данные из таблицы пользователей,

<?php $loginLog = $db->query("SELECT name_f, name_l, DATE_FORMAT(lastLogin, '%a, %b %D, %Y %h:%i %p') AS lastLogin FROM user_control ORDER BY lastLogin ASC LIMIT 10"); while ($recentLogin = $loginLog->fetch()) { echo $recentLogin['name_f'] . " " . $recentLogin['name_l'] . " - " . $recentLogin['lastLogin']; } ?> 

Благодаря! ОБНОВИТЬ

Хорошо, это то, что у меня есть до сих пор. Часть, на которую я застрял, – это то, как пройти через JSON и ввести его в коробку. Он отлично работает, пока я использую только один результат и уверяю, что он не находится в []. Я просто изучаю Ajax и JSON, по какой-то причине это не слишком легко для меня.

Javascript –

 $(document).ready(function(){ function refreshUsers(){ $.getJSON('json.php', function(data) { for (var i = 0; i < data.length; i++) { $("#loadHere").html('<p>' + data.name + ' ' + data.lastLogin + '</p>'); } }); } var refreshInterval = setInterval(refreshUsers, 30 * 1000); refreshUsers(); }); 

Что выводит мой PHP-скрипт –

 [{"name":"Joe Smith","lastLogin":"Fri, May 21st, 2010 08:07 AM"},{"name":"Jane Doe","lastLogin":"Fri, May 21st, 2010 07:07 AM"}] 

Благодаря!

PHP, используйте json_encode () .

Клиентская сторона, используйте $ .getJSON () :

 function refreshUsers(){ $.getJSON(url, postData, function (data, textStatus){ // Do something with the data }); } // Keep interval in a variable in case you want to cancel it later. var refreshInterval = setInterval(refreshUsers, 30 * 1000); 

С этими 2 вам нужно много начать. Более того, вы просите нас работать на вас 🙂

Самый простой способ (будь то лучший способ субъективен – для прецедента, который вы представили, я бы сказал, что это будет хорошо):

 var updateInterval = setInterval(function() { $('#whereIWantToDisplayIt').load('/thePathToThatScript.php'); },30*1000); 

Каждые 30 секунд это загружает вывод вашего PHP-скрипта и помещает этот вывод в элемент с идентификатором = whereIWantToDisplayIt

Я предпочитаю ответ Себа.