论坛帖子中有新的回复就会出现提醒【有新消息】的ajax+php代码怎么写,求指导,谢谢!

最好有详细的代码
2025-02-27 08:21:57
推荐回答(2个)
回答1:

你要判断是否是新消息,也就是是否已读,这个可以在数据表里加字段判断,比如is_read,1表示已读,0表示未读


获取数据。这个因为不是只有一个页面用到,所以写在js文件里,用到的页面都去导入。

setInterval("check_news()",1000);    //每隔一秒执行
function check_news(){
    var xmlhttp;
    if (window.XMLHttpRequest){
      xmlhttp=new XMLHttpRequest();
    }
    else{
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }  
    xmlhttp.onreadystatechange=function(){
      if (xmlhttp.readyState==4 && xmlhttp.status==200){
        if(xmlhttp.responseText>0){
           alert("有新消息");
        }else{
            alert(xmlhttp.responseText);
        }
      }
    }
    xmlhttp.open("GET","test.php?t=" + Math.random(),true);
    xmlhttp.send();
}

在test.php里,就是从数据库获取未读消息的条数,然后返回给前台页面。

比如

$sql = "select count(*) from news where is_read=0";
    $query = mysql_query($sql);
    $row = mysql_fetch_row($query);
    die($row[0]);        //这里把$row[0]的值返回了,也就是上面的xmlhttp.responseText.

回答2:

你可以设置一个函数,每隔多少时间向服务器发送一次请求,服务器有相应的页面来处理是否有新消息,在把这个值返回给请求的客户端。具体实现代码,我也不会,只能说思路。