用jquery写了一个超简陋的ajax无刷新聊天室
时间:2008-05-30
来源:互联网
演示地址:http://www.ye55.com/chat
下载地址:http://www.phpd.cn/show-34-1.html
sql:
CREATE TABLE `message` (
`mid` int(20) NOT NULL auto_increment,
`msg` varchar(255) NOT NULL,
`user` varchar(50) NOT NULL,
`time` int(10) NOT NULL,
PRIMARY KEY (`mid`),
KEY `user` (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=161 ;
CREATE TABLE `session` (
`id` varchar(32) NOT NULL,
`time` int(10) NOT NULL,
`timenow` int(10) NOT NULL,
`data` text NOT NULL,
`ip` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
主要的三个页面的代码
index.php
PHP代码:
<?php
//程序设计:℃冻番茄 QQ:7279915 E-mail:[email protected] [url=http://www.phpd.cn]www.phpd.cn[/url]
require_once("config.php");
?>
<!DOCTYPE htm PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[url=http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="[url=http://www.w3.org/1999/xhtml]http://www.w3.org/1999/xhtml[/url]">
<HEAD>
<TITLE> chat </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/global.css" rel="stylesheet" type="text/css" />
<SCRIPT LANGUAGE="JavaScript" src="js/jquery.js"></SCRIPT>
</HEAD>
<BODY>
<div id="main">
<div id="main_left" style="float:none;margin:0px auto;">
<div id="chat_m" style="width:500px;height:500px;border:#cccccc 1px solid;overflow:auto;">Loading...</div>
<div id="main_l_from">
<FORM METHOD=POST ACTION="javascript:void(0)">
昵称:<INPUT TYPE="text" NAME="user" id="user" size="8" value="<?=$_SESSION['user']?>"> 内容:
<INPUT TYPE="text" NAME="message" id="message" style="width:250px;"> <INPUT TYPE="submit" name="sub" value="发言" id="sub">
</div></FORM>
</div>
<!--<div id="main_right">
<h2>在线会员</h2>
</div>-->
<SCRIPT LANGUAGE="JavaScript">
<!--
$("#chat_m").load("chat.php");
$("#sub").click(function(){
if($("#user").val()==''){
alert("昵称不能为空!");
}else if($("#message").val()==''){
alert("聊天内容不能为空!");
}else{
$.post("ajax.php?act=send",{user:$("#user").val(),msg:$("#message").val()},function(data){
if(data.msg===true){
showmsg();
$("#message").val("");
}else{
alert(data.msg);
}
},"json")
}
})
//-->
</SCRIPT>
<hr size=1>
<center>程序设计:℃冻番茄 QQ:7279915 E-mail:[email protected] <a href="[url=http://www.phpd.cn]http://www.phpd.cn">[url]www.phpd.cn[/url]</a[/url]> </center>
PHP代码:
<?php
require_once("config.php");
//程序设计:℃冻番茄 QQ:7279915 E-mail:[email protected] [url=http://www.phpd.cn]www.phpd.cn[/url]
$fist=$db->getfirst("select `mid` from `message` order by `mid` desc ");
$mid=$fist['mid']-40; //初始化聊天记录条数
$mid=$mid<=0?0:$mid;
$mid=0;
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<div id="contents"></div>
<INPUT TYPE="text" style="display:none" NAME="mid" id="hide_mid" value="<?=$mid?>">
<div id="end" style="width:400px;display:none;clear:both;"></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
//alert($("#hide_mid").val());
function showmsg(){
mids=$("#hide_mid").val();
$.post("ajax.php?act=display",
{mid:mids},
function(data){
//alert(data.list[2].user);
$("#hide_mid").val(data.mid);
if(data.list!=0){
for(i=0;i<data.list.length;i++){
$("#contents").append("<br />"+data.list[i].user+"说: "+data.list[i].msg+" ["+data.list[i].time1+"]");
scrollWindow();
}
}
},"json");
}
function scrollWindow() {scroll(0, 100000); }
showmsg();
setInterval("showmsg()", 4000);
//-->
</SCRIPT>
PHP代码:
<?php
require_once("config.php");
////程序设计:℃冻番茄 QQ:7279915 E-mail:[email protected] [url=http://www.phpd.cn]www.phpd.cn[/url]
//发信息
if($_GET['act']=='send'){
$msg=$_POST['msg'];
$user=$_POST['user'];
if(empty($msg) || empty($user)){
$return['msg']='聊天内容或昵称不能为空';
}else{
$time=time();
if($db->insert("insert into `message` (`msg`,`user`,`time`) values ('$msg','$user','$time')")){
$return['msg']=true;
}else{
$return['msg']="err";
}
}
echo json_encode($return);
}elseif($_GET['act']=='display'){
if(isset($_POST['mid'])){
$s=" where `mid`>'".$_POST['mid']."' ";
}else{
$s='';
}
$sql="select * from `message` $s order by `mid`";
$total=$db->getcount($sql);
if($total==0){
$a=0;
}else{
$result=$db->query($sql);
while($row=$db->getarray($result)){
$row['time1']=date('Y-m-d H:i:s',$row['time']);
$a[]=$row;
$b=$row['mid'];
}
}
$ccc=array('list'=>$a,'mid'=>$b);
echo json_encode($ccc);
}
?>
作者: dmkf 发布时间: 2008-05-30

作者: luzhou 发布时间: 2008-05-30
作者: zhuweibao 发布时间: 2008-05-30
作者: dmkf 发布时间: 2008-05-30
作者: dzjzmj 发布时间: 2008-05-30
作者: elove 发布时间: 2008-05-31
作者: elove 发布时间: 2008-05-31
作者: lshfong 发布时间: 2008-06-03
引用:
原帖由 lshfong 于 2008-6-3 15:08 发表我怎么放在本地调试,首页什么都没有呢
作者: dmkf 发布时间: 2008-06-04
作者: 小小魔刀 发布时间: 2008-06-04
作者: lenco 发布时间: 2008-06-04
如果使用 PHP 来做聊天室的话. 建议用MEMCACHED 来记录聊天信息.
作者: szy_session1987 发布时间: 2008-06-06
作者: lshfong 发布时间: 2008-06-06
作者: 月黑风高 发布时间: 2008-06-12
作者: paciwater 发布时间: 2008-06-13
作者: 非常电电 发布时间: 2008-06-14
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28