小编典典

jQuery每X分钟/秒重新加载一次AJAX数据

ajax

我编写了一个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"}]

谢谢!


阅读 293

收藏
2020-07-26

共1个答案

小编典典

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,您应该有很多入门知识。不仅如此,您还会要求我们为您服务:)

2020-07-26