本實例介紹了在利用thinkajax中的無刷新技術來實例異步傳輸,有需要的朋友可以參考一下。
ThinkPHP的官方文檔沒有給出ThinkAjax的使用方法,令很多初學者使用起來有些不便,今天學到這裡,也碰到了很多問題,花時間深究下,做個學習筆記,希望能對初學者有幫助。
代碼如下 復制代碼<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('標題不能為空...');
}
}
}
?>