你要判断是否是新消息,也就是是否已读,这个可以在数据表里加字段判断,比如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.
你可以设置一个函数,每隔多少时间向服务器发送一次请求,服务器有相应的页面来处理是否有新消息,在把这个值返回给请求的客户端。具体实现代码,我也不会,只能说思路。