一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ThinkPHP結合ajax、Mysql實現的客戶端通信功能代碼示例

該實例通過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<arrs.length;j++){//循環插入數據        var obj=$("<tr><td><h3></h3></td><td></td></tr>");//定義頁面當中記錄框的html格式代碼    var i=$("<i>  "+arrs[j].times+"</i><input type='hidden' value='"+arrs[j].times+"'>");//i標簽i為thinkphp定義的直接將時間輸出到input隱藏并且存儲得到數據里面的聊天發送時間    var p=$("<p></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、聊天頁面,代碼如下:

<volist name="words" id="vo"><tr><td><h3 <if condition="$vo['name']=='主持人'">class="presenter"</if>>{$vo.name}:</h3></td><td><div>{$vo.content}<i>  {$vo.time|date="Y-m-d H:i:s",###}</i>       <input type="hidden" name="time" value="{$vo.time}"></div></td></tr></volist>

php技術ThinkPHP結合ajax、Mysql實現的客戶端通信功能代碼示例,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美特黄一免在线观看 | 日本一区二区三区在线 视频 | 亚洲精品日韩中文字幕久久久 | 成人免费动作大片黄在线 | 久久精品国产国语对白 | 成人免费在线观看视频 | 在线视频观看一区 | 久久久久久久久性潮 | 樱花aⅴ一区二区三区四区 影音先锋 色天使 | 天天做天天爱夜夜大爽完整 | 最新精品国偷自产在线91 | 一级女人毛片 | 国产精品视频一 | 久久99亚洲综合精品首页 | 酒色婷婷 | 亚洲区欧美区小说区图片区 | 波多野结衣精品一区二区三区 | 狠狠干狠狠干狠狠干 | 国产亚洲精品观看91在线 | 久久精品国产99久久72 | 日本aⅴ永久免费网站www | 国产精品无 | 天天做天天做天天综合网 | 久久经典视频 | www涩涩 | 伊人9| 免费国产最新进精品视频 | 欧美大逼逼 | 特黄aaaaaa久久片 | 亚洲伊人久久大香线蕉结合 | 视频国产在线 | 色婷婷六月 | 亚洲综合久久综合激情久久 | 五月激情天 | 国产在线一区二区 | 久久国内精品自在自线观看 | 91人成网站色www | 午夜视频在线看 | 久草视频一区 | 综合伊人久久在一二三区 | 五月天网站最新永久网址 |