php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)
通过ajax和setInterval()函数,配合php+mysql实现一个简单的在线聊天室的功能。附带详细源码案例。这个聊天室是一个简单的聊天室,通过javascript setInterval()和ajax函数,不停的去获取服务器获取最新的聊天数据信息,并无刷新的写入到前台DOM中,来实现在线聊天的功能,这是一个比较笨的方法实现在线聊天室功能,不建议用于实际项目中。html代码:
实现一个简单的在线聊天室功能
在线聊天
.chats { width:100%;max-height:295px;min-height:200px; height:auto; overflow-y:auto; }
.chatbtn { width:100%; padding:10px 10px; border-top:1px dashed #000;}
.chats .chatlist { width:100%; padding:10px 10px; min-height:24px; line-height:1.2; font-size:13px; text-align:left; }
.chats .chatlist .chattit { font-size:14px; }
.chats .chatlist .chattit span { margin-right:2px; }
.chats .chatlist .chatcon { font-size:13px; padding-left:10px; margin-top:6px;text-decoration: underline;}
发送
//js聊天代码
$(function(){
//获取聊天数据
setInterval(function(){
var star = $('#datachat').attr('data_num');
//判断是不是第一次加载,如果是第一次加载直接获取数据库最新的数据
//如果不是第一次加载,就不停的去获取服务器的最新聊天数据
if(star=='load'){
$.ajax({
url:'inc/chat.php?type=get_def',
type:'post',
cache:false,
dataType:'json',
success:function(data){
if(data !='error!'){
var clength = data.length-1;
for(var i=clength;i>=0;i--){
$(".chats").append("
");
$('#datachat').attr('data_num',data[i].id);
$(".chats").animate({scrollTop:$('.chats')[0].scrollHeight},2000);
}
}
}
});
}else{
$.ajax({
url:'inc/chat.php?type=get_new',
type:'post',
cache:false,
dataType:'json',
data:{
'num':star
},
success:function(data){
if(data !='error!'){
var clength = data.length-1;
for(var i=clength;i>=0;i--){
$(".chats").append("
");
$('#datachat').attr('data_num',data[i].id);
$(".chats").animate({scrollTop:$('.chats')[0].scrollHeight},700);
}
}
}
});
}
},1500);
//发送聊天数据
$('#chat_send').click(function(){
var chat_name = $('#name').val();
var chat_con = $('#con').val();
if(chat_name==''){
$('#name').val('昵称不可以为空!');
return false;
}else if(chat_name=='昵称不可以为空!'){
$('#name').val(' ');
return false;
}else if(chat_name.length<1){
$('#name').val('昵称太短!');
return false;
}else if(chat_name=='昵称太短!'){
$('#name').val(' ');
return false;
}
if(chat_con==''){
$('#con').val('内容不可以为空!');
return false;
}else if(chat_con=='内容不可以为空!'){
$('#con').val(' ');
return false;
}else if(chat_con.length<1){
$('#con').val('内容太短!');
return false;
}else if(chat_con=='内容太短!'){
$('#con').val(' ');
return false;
}
$.ajax({
url:'inc/chat.php?type=send',
type:'post',
cache:false,
dataType:'text',
data:{
'name':chat_name,
'con':chat_con
},
success:function(data){
if(data=='发送成功!'){
$('#chat_send').text('发送成功');
}else{
$('#chat_send').text('发送失败');
}
setTimeout(function(){
$('#chat_send').text('发送');
},1000);
},
error:function(){
alert('请求出错!');
}
});
});
});
php数据处理代码 chat.php:<?php
header("Conten-type:text/html;charset=utf-8");
require('../config.php');
require('getip.php');
if( $_SERVER['REQUEST_METHOD'] == "POST" ) {
if ($_GET['type'] == 'send') {
//添加聊天数据
$name = htmlspecialchars(addslashes(trim($_POST['name'])));
$con = htmlspecialchars(addslashes(trim($_POST['con'])));
if (empty($name) || empty($con)) {
echo "信息填写不完整。";
exit;
} else {
$ip = GetIpFrom();
$ips = $ip[0] .'-'. $ip[1];
if($dbh->exec("insert into chat (name,content,addtime,address) values('$name','$con',now(),'$ips')")>0){
echo '发送成功!';
exit;
}else{
echo '发送失败!';
exit;
}
}
}else if ($_GET['type'] == 'get_def'){
//获取数据
$res = $dbh->query("SELECT * FROM chat ORDER BY id DESC LIMIT 10");
$res = $res->fetchAll();
if($res){
echo json_encode($res);
exit;
}else{
echo 'error!';
exit;
}
}else if($_GET['type'] == 'get_new'){
$num = intval($_POST['num']);
$sql1 ="SELECT * FROM chat WHERE id>{$num} ORDER BY id DESC";
$res1 = $dbh -> query($sql1);
$res2 = $res1->fetchAll();
if($res2){
echo json_encode($res2);
exit;
}else{
echo 'error!';
exit;
}
}
}
?>mysql数据库结构:CREATE TABLE IF NOT EXISTS `chat` (
`id` int(8) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` char(10) NOT NULL COMMENT '昵称',
`content` varchar(255) NOT NULL COMMENT '内容',
`addtime` datetime NOT NULL COMMENT '发布时间',
`address` varchar(80) DEFAULT '未知' COMMENT 'ip地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='在线聊天' AUTO_INCREMENT=3 ;
ajax+php简单聊天室源码下载:
php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)相关推荐
- 详细介绍附代码:使用jquery,和php文件构建一个简单的在线聊天室,通过ip显示googlemap
最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步. 首先介绍一下相关文件信息和功能 ...
- 基于Android开发的在线考试系统(附带源码)
管理员:管理员使用本系统涉到的功能主要有:首页.个人中心.学生管理.教师管理.考试公告管理.管理员管理.试题管理.试卷管理.系统管理.考试管理等功能. 教师:教师进入app可以对:首页.个人中心.学生 ...
- 基于PHP实现一个简单的在线聊天功能(轮询ajax )
基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...
- 实战|使用 Python 开发一个在线聊天室
「来源: |Python爬虫与数据挖掘 ID:crawler_python」 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 云想衣裳花想容,春风拂槛露 ...
- 实战 | 使用 Python 开发一个在线聊天室
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 云想衣裳花想容,春风拂槛露华浓. ...
- 实现一个简单的语音聊天室(多人语音聊天系统)
多人语音聊天,或语音聊天室,是即时通信应用中常见的功能之一,比如,QQ的语音讨论组就是我们用得比较多的. 本文将基于最新版本的OMCS(V3.5)实现一个简单的语音聊天室,让多个人可以进入同一个房间进 ...
- 实现一个简单的视频聊天室(源码)
在 <实现一个简单的语音聊天室>一文发布后,很多朋友建议我也实现一个视频聊天室给他们参考一下,其实,视频聊天室与语音聊天室的原理是差不多的,由于加入了摄像头.视频的处理,逻辑会繁杂一些,本 ...
- 实现一个简单的语音聊天室(源码)
语音聊天室,或多人语音聊天,是即时通信应用中常见的功能之一,比如,QQ的语音讨论组就是我们用得比较多的. 这篇文章将实现一个简单的语音聊天室,让多个人可以进入同一个房间进行语音沟通.先看运行效果截图: ...
- 简单的一个在线聊天室
闲着无聊写一个基于数据库写一个在线聊天室 前几天闲着没事突然想起写个小程序玩玩,就想到了写个在闲聊天室,话不多说直接开始. 1.第一当然是先写一个聊天界面啦,我写的界面是这样: 聊天页面 2.写这个程 ...
最新文章
- 在SolidWorks 3D CAD中构建乐高直升机
- 更新ubuntu软件源
- 超图iServer重置管理员密码图解
- (二) :JS 生成随机数字母和数字
- 牛客题霸 [矩阵查找] C++题解/答案
- 【GoWeb开发实战】Beego的路由控制
- php删除文件代码指定,PHP删除指定文件夹所有文件代码
- 蚂蚁之江要退地?官方回应:假的
- 调整oracle数据库编码
- HDU2074 叠筐【打印图案】
- python的字典合并有相同的_将列表中的重复项合并到python字典中
- 微信小程序常用api
- Louvain 算法的核心思路以及数据结构(最完善版)
- Git下载并安装(完整、详细教程)
- 智能推荐系统开发中的十个关键注意点
- 【小程序】常见系统API | 页面分享 | 位置信息 | 本地存储
- 冬季到吉林来玩雪|史上最全的吉林冬季旅游攻略!
- Node.js结合Express框架项目搭建
- springboot搭建项目环境以及整合其他技术
- PCB:FPC原材料,设计,加工,组装终极解决方案
热门文章
- swft c 语言 数组,如何在swift中实现数组的深拷贝
- python 元组比较大小_为什么元组比列表更快?
- 代码质量管理工具】——sonar
- struts2访问jsp页面404
- php什么情况下使用静态属性,oop-做php项目什么时候该使用静态属性呢
- html window 属性,html中window对象top 、self 、parent 等属性
- 安装gem_Python安装第三方库及常见问题处理方法汇总
- c#如何嵌套第三方程序_C#程序演示嵌套条件运算符的示例
- Redis为什么变慢了?一文详解Redis性能问题 | 万字长文
- 关于C#监视剪贴板信息