我编写了一个CMS,其中记录了谁最近登录了系统。目前,此数据通过Ajax馈入jQuery UI选项卡。我想将此信息放入主页的侧边栏中,并每30秒(或一定时间)通过AJAX加载。
我将如何去做?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,您应该有很多入门知识。不仅如此,您还会要求我们为您服务:)