每隔X分钟/秒重新加载AJAX数据,jQuery

我编写了一个CMS,其中包含最近登录系统的人员日志。 目前,这些数据通过Ajax提供给jQuery UI选项卡。 我想将这些信息放在主页的侧边栏中,并每隔30秒(或一段设定的时间)通过AJAX加载它。

我该怎么做呢? PHP响应是否需要进行JSON编码? 我对AJAX和JSON数据还不熟悉。

这是我目前用来从用户表中提取详细信息的PHP-

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']; } ?> 

谢谢! UPDATE

好吧,这就是我到目前为止……我坚持的部分是如何循环JSON并将其输入框中。 只要我只使用一个结果并确保它不在[]中,它就可以正常工作。 我只是学习Ajax和JSON,由于某种原因它不太容易找到我。

Javascript –

 $(document).ready(function(){ function refreshUsers(){ $.getJSON('json.php', function(data) { for (var i = 0; i < data.length; i++) { $("#loadHere").html('

' + data.name + ' ' + data.lastLogin + '

'); } }); } 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); 

有了这两个,你应该有很多东西可以开始使用。 更重要的是,你要求我们为你工作:)

最简单的方法(无论是最好的方式是主观的 – 对于你提出的用例,我说它很好)将是:

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

每隔30秒,这将加载PHP脚本的输出,并将该输出放入ID = whereIWantToDisplayIt的元素中

我更喜欢Seb的答案。