亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ThinkPHP中的客戶端通信怎么利用ajax與Mysql實現

發布時間:2020-12-19 16:18:14 來源:億速云 閱讀:181 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關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><h4></h4></td><td></td></tr>");//定義頁面當中記錄框的html格式代碼
    var i=$("<i>&nbsp;&nbsp;"+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 h4value=arrs[j].name;//發送的作者
    obj.find("h4").html(h4value+":");
    if(h4value=="主持人")
    {obj.find("h4").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><h4 <if condition="$vo['name']=='主持人'">class="presenter"</if>>{$vo.name}:</h4></td>
<td>
<div>{$vo.content}<i>&nbsp;&nbsp;{$vo.time|date="Y-m-d H:i:s",###}</i>
       <input type="hidden" name="time" value="{$vo.time}">
</div>
</td>
</tr>
</volist>

關于ThinkPHP中的客戶端通信怎么利用ajax與Mysql實現就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

土默特左旗| 千阳县| 深泽县| 祁门县| 大化| 桦甸市| 太和县| 进贤县| 荣成市| 漯河市| 商都县| 中西区| 峨山| 石阡县| 濉溪县| 关岭| 漯河市| 时尚| 清远市| 阜平县| 壤塘县| 齐齐哈尔市| 孟连| 临西县| 乌兰察布市| 当阳市| 阳西县| 若尔盖县| 博客| 沭阳县| 上虞市| 睢宁县| 阿荣旗| 长子县| 澎湖县| 宁强县| 宁阳县| 闻喜县| 吉木萨尔县| 定西市| 新田县|