javascript - 如何使用ajax/json刷新页面部分?

标签 javascript php jquery json ajax

我正在建立一个聊天网站,现在我正在研究在线用户。 我使用 AJAX 进行刷新,但在 Append.(); 方面遇到了一些问题。 刷新部分时,相同的数据一次又一次出现...这就是 PHP 文件。

<?php
public function online(){
    $database = new DB();
    $db = $database->database();
    $array = array();
    $ref = $_SESSION['oc_users_ref'];

    $time_out = time()-5;
    $time = time();

    $query = $db->query("SELECT * FROM oc_users WHERE users_online = 0");

    $updateOnline = $db->query("UPDATE oc_users SET users_online = 1 WHERE users_lastcome < '$time_out'");

    $q = $db->query("SELECT * FROM oc_users WHERE users_ref <> '$ref' AND users_online = 0 ORDER BY users_lastcome DESC");

     while($data = $q->fetch()) {
        if($data['users_online'] == 1){
            $class = "opacity30";
        }else{
            $class = '';
        }
        $array[] = $data;
     }
     print json_encode($array);
} ?>

现在是 Javascript

function getOnline(){
	$.ajax({
		url: "conf/users.php?act=online",
		dataType: "text",
		success: function(data) {
			var json = $.parseJSON(data);
			for (var i=0;i<json.length;++i)
			{
				$('#printOnline').append('<li><a href="javascript:void(0);" onclick=javascript:chatWith("'+json[i].users_nickname+'")><i></i>'+json[i].users_nickname+'</a></li>');
			}
		}
	});
}
setInterval('getOnline()',10000);

结果*

用户001 用户001 用户001 用户001 用户001 用户001 用户001 用户001

请帮助我...非常感谢

最佳答案

更新前重置用户列表:

function getOnline(){
    $.ajax({
        url: "conf/users.php?act=online",
        dataType: "text",
        success: function(data) {
            $('#printOnline').html("");
            var json = $.parseJSON(data);
            for (var i=0;i<json.length;++i)
            {
                $('#printOnline').append('<li><a href="javascript:void(0);" onclick=javascript:chatWith("'+json[i].users_nickname+'")><i></i>'+json[i].users_nickname+'</a></li>');
            }
        }
    });
}
setInterval('getOnline()',10000);

关于javascript - 如何使用ajax/json刷新页面部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34423550/

相关文章:

javascript - 如何在ACE编辑器中高亮某一行?

javascript - 在 Vue JS 中使用 v-for 为组件设置 props

php - 无法将 MySQL 查询结果放入 PHP 数组

php - 将 PHP json 编码的 UTF8 字符串转换为常规字符

javascript - 如何以不同的方式声明 JavaScript 变量

javascript - 将数组转换为数组的数组

javascript - 我的主干版本是什么?

PHP-从深度未知的多维数组中获取具有特定数组键的所有值

javascript - 按下按钮时获取 td 的序列

javascript - 为什么我不能获得超过 2 个变量来处理 HTML5 Canvas 和 JavaScript?