该实例通过ThinkPHP结合Ajax与mysql实现了客户端的通信功能,具体如下:
1、使用js的ajax局部刷新功能,每次刷新将数据库中读取出的新记录插入到页面的显示区域,代码如下:
| "+arrs[j].times+"");//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);//滚动到底部
}
}
2、action控制器,代码如下:
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、聊天页面,代码如下:
>{$vo.name}:{$vo.content}{$vo.time|date="Y-m-d H:i:s",###}
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!