Ajax实时用户状态更改,无需页面刷新


Ajax Realtime user status change without page refresh

我有一个div,当用户登录/退出时变为绿色/红色

$results = mysql_query("SELECT * FROM `users` WHERE user_id='".$user_id."' LIMIT 1");
if(mysql_num_rows($results ) > 0){
    while($row = mysql_fetch_assoc($results)){                      
      if($row['status'] === "1"){                       
        $status = 'online';                     
      }else{
         $status = 'offline';                   
      }
   }
}
<div class="'. $status .'">username</div>

我如何使它改变$状态而不需要刷新页面来查看更改?因此,如果我的网站上有100个客人,一个用户登录,所有100个客人都将在立即登录的用户旁边看到绿色

任何帮助都非常感谢!

如何显示客人列表?把id attribute变成username divs。然后使用long pollingajax at regular interval(假设每1秒一次)来查看谁在线。在ajax success function中,您可以通过jquery或原生javascript通过Id编辑div的颜色。

使用jquery的ajax示例代码,每1秒

function test()
{
$.ajax({
url:url,
data:{postingData:dt},
success:function(response) {
},
error: function (response) {
}
})
}
setInterval('test()',1000);

在php中,你需要搜索你的用户表来选择在线用户,并可以发送所有登录用户的json数组。然后在jquery成功函数中,需要处理这个json数组并更改登录用户的颜色。