利用ThinkPHP內建的ThinkAjax實現非同步傳輸技術的實現方法

來源:互聯網
上載者:User
這篇文章主要介紹了關於利用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('標題不可為空...'); } } } ?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.