這篇文章主要介紹了利用ThinkPHP內建的ThinkAjax實現非同步傳輸技術的實現方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
ThinkPHP的官方文件沒有給出ThinkAjax的使用方法,令許多初學者使用起來有些不便,今天學到這裡,也碰到了很多問題,花時間深究下,做個學習筆記,希望能對初學者有幫助
準備工作:
① 首先要會使用ThinkPHP這個框架
② 最好有些ajax的基礎(可以去看下小飛的另外一篇博文:Ajax實時驗證"用戶名/郵箱等"是否已經存在)
③ 4個js文件(點此免積分下載)
先貼上原始碼:
複製程式碼 程式碼如下:
<script type="text/javascript" src="__PUBLIC__/js/base.js"></script> <script type="text/javascript" src="__PUBLIC__/js/prototype.js"></script> <script type="text/javascript" src="__PUBLIC__/js/mootools.js"></script> <script type="text/javascript" src="__PUBLIC__/js/Ajax/ThinkAjax.js"></script> <script type="text/javascript"> function checktitle() { ThinkAjax.send('__URL__/checktitle','ajax=1&title='+$('title').value,'','checkbox'); } </script> <form action="__URL__/insert" method="post" id="myform"> <table> <tbody> <tr> <td width="45" class="tRight">标题:</td> <td> <input type="text" id="title" name="title"> <input type="button" value="检查" onClick="checktitle();"> </td> <td> <span id="checkbox"></span> </td> </tr> </tbody> </table> </form>
程式碼解釋:
為「檢查」按鈕新增一個onclick事件,當按鈕被點擊時,呼叫checktitle()函數
在checktitle函數中,我們只用到了ThinkAjax物件中的成員方法send
send:function(url,pars,response,target,tips,effect){……}
可以看出ThinkAjax.send方法共有6個參數:
參數url:表示要將客戶端瀏覽器傳輸過來的資料提交到伺服器上的哪個方法進行處理,我在這裡提交給「目前模組下的checktitle方法」處理
參數pars:相當於ajax中的send方法中的參數string,表示要提交過去的數據,該參數只用於post方式傳值
參數response:自訂的回調函數,如果定義了回調函數,則伺服器處理完提交過去的資料之後,將會把處理後的資料交給回調函數進行處理。此回調函數有兩個參數:①data②status 參數data:將伺服器端處理後的資料賦給data 參數status:表示處理後的狀態信息,1表示成功0 表示失敗
參數target:表示將處理後的數據在哪個地方進行顯示(或輸出),例如:我將此參數賦為:checkbox,表示處理後的資料會在id=”checkbox”的標籤進行資訊輸出
當前模組下的checktitle方法的源代碼:
複製程式碼 程式碼如下:
<?php class IndexAction extends Action { // 首页 public function index(){ $this->display(); } // 检查标题是否可用 public function checkTitle() { if(!empty($_POST['title'])) { $Form = D("Form"); if($Form->getByTitle($_POST['title'])) { $this->error('标题已经存在'); } else { $this->success('标题可以使用!'); } } else { $this->error('标题不能为空...'); } } } ?>
#相關推薦:
以上是利用ThinkPHP內建的ThinkAjax實現非同步傳輸技術的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!