1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > ThinkPHP结合ajax Mysql实现的客户端通信功能代码示例

ThinkPHP结合ajax Mysql实现的客户端通信功能代码示例

时间:2021-04-19 09:46:51

相关推荐

ThinkPHP结合ajax Mysql实现的客户端通信功能代码示例

php教程|php手册

ThinkPHP,ajax,Mysql,客户端通信

php教程-php手册

服装租赁系统源码,莫烦教学ubuntu,tomcat的错误信息在,爬虫安装什么版本,html代码里面可以写php么,舟山seo优化lzw

这篇文章主要介绍了ThinkPHP结合ajax、Mysql实现的客户端通信功能,需要的朋友可以参考下

tpshop支付原路退回源码,ubuntu磁盘引导安装,沈阳卖爬虫想,php myspli,松原seo培训lzw

电影网站的源码,vscode注释颜色修改,ubuntu装环境,启动tomcat程序,sqlite3 优缺点,前端框架构建视频教程交流,学爬虫可以兼职吗知乎,php socket通信,招远seo推广价格,手机网站模板下载,3d地球旋转网页特效,免费模板下载网站lzw

该实例通过ThinkPHP结合Ajax与mysql实现了客户端的通信功能,具体如下:

1、使用js的ajax局部刷新功能,每次刷新将数据库中读取出的新记录插入到页面的显示区域,代码如下:

window.onload =setInterval(showWords1000);//加载完成之后开始执行刷新功能

function showWords()//刷新时被调用函数,实现ajax请求

{

xmlHttp=GetXmlHttpObject();//从自定义的函数中获取请求对象。

if (xmlHttp==null)

{

alert (“Browser does not support HTTP Request”)

return;

}

var url=”index.php?g=Ksks&m=Comments&a=refresh”;//要请求的路径使用shuipfcms框架,所以g是分组,m是action控制器,a是模板

url=url+”&data_id=”+$(“#data_id”).val();//接上,,data_id传的参数,用于查询数据库的id

url=url+”&lasttime=”+$(“i”).last().siblings(‘input’).val();//lasttime是页面显示数据的最后一个记录的时间戳,查找时根据大于这个时间戳的条件查找

xmlHttp.onreadystatechange=stateChanged;//响应状态改变时调用的函数

xmlHttp.open(“GET”,url,true);//使用get方法提交

xmlHttp.send();//上面传参之后,这句可要可不要

}

function stateChanged() //实现向页面插入数据功能

{

var str =””;

if(xmlHttp.readyState==4 || xmlHttp.readyState==”complete”)

{

eval(“var arrs=”+xmlHttp.responseText);//获取由action响应输出的数据,因为数据室php数组格式,需用eval或json转化成js数组格式

var chdiv=$(“#conversation_history”);//通信聊天记录框

for(var j=0;j

“);//定义页面当中记录框的html格式代码

var i=$(““);//i标签i为thinkphp定义的直接将时间输出到input隐藏并且存储得到数据里面的聊天发送时间

var p=$(“”);

p.html(arrs[j].content);//聊天内容

p.append(i);

var h3value=arrs[j].name;//发送的作者

obj.find(“h3″).html(h3value+”:”);

if(h3value==”主持人”)

{obj.find(“h3”).addClass(“presenter”);}//主持人会特别显示

obj.find(“td:last”).append(p);

chdiv.append(obj);//追加到table里面

}

chdiv.parent().scrollTop(chdiv.parent()[0].scrollHeight+0);//滚动到底部

}

}

function GetXmlHttpObject()//定义ajax请求对象

{

var xmlHttp=null;

try

{

// Firefox, Opera 8.0+, Safari

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

//Internet Explorer

try

{

xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);

}

catch (e)

{

xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);

}

}

return xmlHttp;

}

2、action控制器,代码如下:

function refresh(){

$data_id = I(‘get.data_id’);//获得嘉宾id

$lasttime = I(‘get.lasttime’);

//print_r(date(“Y-m-d H:i:s”,$lasttime));

if(!$data_id)

$this->error(“该访谈不存在!”);

$data = M(“ksks_words_memoir”);

//print_r(date(‘Y-m-d H:i:s’,$lasttime));

if(!$data)

$this->error(“初始化数据失败!”);

//$words = $data->where(array(‘dataid’ => $data_id))->order(‘time asc’)->select();

//print_r($data->where(array(‘time’ => $lasttime))->select());

$where[‘time’] = array(‘gt’,$lasttime);

$count = $data->where($where)->count();

//print_r(date(“Y-m-d H:i:s”,$lasttime));

$words = $data->where($where)->select();

$datas = array();//要返回的数组

$i = 0;

foreach($words as $word)

{

$datas[$i][‘name’] = $word[‘name’];

$datas[$i][‘content’] = $word[‘content’];

$datas[$i][‘times’] = date(‘Y-m-d H:i:s’,$word[‘time’]);

$lasttime = $word[‘time’];

$i = $i+1;

}

setCookie(‘lasttime’,$lasttime);

$datas = json_encode($datas);

//$this->cache();

echo $datas;

}

3、聊天页面,代码如下:

<h3 class=”presenter”>{$vo.name}:

{$vo.content}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。