简体   繁体   English

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

[英]How to refresh a page section using ajax/json?

i am building a chat website, now i working on ONLINE USER . 我正在建立一个聊天网站,现在我在ONLINE USER上工作。 I use AJAX to refresh but i meet some problems with Append.(); 我使用AJAX刷新,但是遇到Append。()的一些问题 . When refreshing section the same data appear again and again...That is the PHP file. 刷新部分时,相同的数据一次又一次地出现...这就是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);
} ?>

Now the Javascript 现在是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); 

And the result* 结果*

User001 User001 User001 User001 User001 User001 User001 User001 用户001用户001用户001用户001用户001用户001用户001用户001

Please help me...Great Thanks 请帮助我...非常感谢

Reset the user list before updating: 在更新之前重置用户列表:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM