闲着无聊写一个基于数据库写一个在线聊天室
前几天闲着没事突然想起写个小程序玩玩,就想到了写个在闲聊天室,话不多说直接开始。
1.第一当然是先写一个聊天界面啦,我写的界面是这样:
聊天页面
2.写这个程序的主要思路就是:客户端点击“发送”提交聊天信息到数据库中,聊天记录窗口中再在数据库中将聊天记录取出并显示出来。
聊天页面方面需要利用到AJAX定时的刷新页面达到定时刷新页面,后台从数据库中取出信息:
使用js设置定时器定时刷新局部页面:
<script>
$(function(){
setInterval(aa,1000);//设置一个定时器,每秒对聊天记录框aa刷新一次
var i=1;
var str1="";
function aa(){
$.getJSON("load.php",function(res){ //请求load.php获取返回的查询结果json数据
if(res==="")//如果返回值为空或者返回值为上一条一样的不执行
{
console.log("no masg!");
}else
{
jsonObj = res;
var str ="<div class='text_list'>"+"<p class='info'>"+jsonObj['name']+":("+jsonObj['time']+")"+"["+jsonObj['addr']+"]"+"</p>"+"<p class='content_body'>"+jsonObj['content']+"</p></div>";
if(str1==str)
{
}
else
{
$("#aa").append(str);
str1=str;
console.log("get masg!"+(i++)+res);
}
}
});
}
});
</script>
load.php为查询现有的聊天记录的API,并返回JSON数据
load.php
<?php
require 'mysql_conn.php';
$sql = "select * from chat_log where IsNew=1 LIMIT 1";
$result = mysql_query($sql,$con)or die(mysql_error());
if(mysql_num_rows($result)==0)
{
echo "";
}
else
{
$row = mysql_fetch_array($result);
$rows['name']=$row['name'];
$rows['time']=$row['time'];
$rows['addr']=$row['addr'];
$rows['content']=$row['content'];
$rows['id']=$row['id'];
echo json_encode($rows, JSON_UNESCAPED_UNICODE);
}
mysql_close($con);
?>