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

时间:2015-12-22 19:58:59

标签: javascript php jquery json ajax

我正在建立一个聊天网站,现在我正在使用在线用户。 我使用AJAX刷新但我遇到了一些问题追加。(); 。 刷新部分时,一次又一次出现相同的数据......这是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

请帮帮我......非常感谢

1 个答案:

答案 0 :(得分:1)

更新前重置用户列表:

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