利用ThinkPHP內(nèi)置的ThinkAjax實現(xiàn)異步傳輸技術(shù)的實現(xiàn)方法
更新時間:2011年12月19日 01:25:05 作者:
ThinkPHP的官方文檔沒有給出ThinkAjax的使用方法,令很多初學者使用起來有些不便,今天學到這里,也碰到了很多問題,花時間深究下,做個學習筆記,希望能對初學者有幫助
準備工作:
① 首先要會使用ThinkPHP這個框架
② 最好有些ajax的基礎(可以去看下小飛的另外一篇博文:Ajax實時驗證"用戶名/郵箱等"是否已經(jīng)存在)
③ 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事件,當按鈕被點擊時,調(diào)用checktitle()函數(shù)
在checktitle函數(shù)中,我們只用到了ThinkAjax對象中的成員方法send
send:function(url,pars,response,target,tips,effect){……}
可以看出ThinkAjax.send方法共有6個參數(shù):
參數(shù)url:表示要將客戶端瀏覽器傳輸過來的數(shù)據(jù)提交到服務器上的哪個方法進行處理,我這里提交給“當前模塊下的checktitle方法”處理
參數(shù)pars:相當于ajax中的send方法中的參數(shù)string,表示要提交過去的數(shù)據(jù),該參數(shù)只用于post方式傳值
參數(shù)response:自定義的回調(diào)函數(shù),如果定義了回調(diào)函數(shù),則服務器處理完提交過去的數(shù)據(jù)之后,將會把處理后的數(shù)據(jù)交給回調(diào)函數(shù)進行處理。該回調(diào)函數(shù)有兩個參數(shù):①data②status 參數(shù)data:將服務器端處理后的數(shù)據(jù)賦給data 參數(shù)status:表示處理后的狀態(tài)信息,1表示成功 0 表示失敗
參數(shù)target:表示將處理后的數(shù)據(jù)在哪個地方進行顯示(或輸出),比如:我將此參數(shù)賦為:checkbox,表示處理后的數(shù)據(jù)會在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('標題已經(jīng)存在');
}
else
{
$this->success('標題可以使用!');
}
}
else
{
$this->error('標題不能為空...');
}
}
}
?>
文章作者:WEB開發(fā)_小飛
① 首先要會使用ThinkPHP這個框架
② 最好有些ajax的基礎(可以去看下小飛的另外一篇博文:Ajax實時驗證"用戶名/郵箱等"是否已經(jīng)存在)
③ 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事件,當按鈕被點擊時,調(diào)用checktitle()函數(shù)
在checktitle函數(shù)中,我們只用到了ThinkAjax對象中的成員方法send
send:function(url,pars,response,target,tips,effect){……}
可以看出ThinkAjax.send方法共有6個參數(shù):
參數(shù)url:表示要將客戶端瀏覽器傳輸過來的數(shù)據(jù)提交到服務器上的哪個方法進行處理,我這里提交給“當前模塊下的checktitle方法”處理
參數(shù)pars:相當于ajax中的send方法中的參數(shù)string,表示要提交過去的數(shù)據(jù),該參數(shù)只用于post方式傳值
參數(shù)response:自定義的回調(diào)函數(shù),如果定義了回調(diào)函數(shù),則服務器處理完提交過去的數(shù)據(jù)之后,將會把處理后的數(shù)據(jù)交給回調(diào)函數(shù)進行處理。該回調(diào)函數(shù)有兩個參數(shù):①data②status 參數(shù)data:將服務器端處理后的數(shù)據(jù)賦給data 參數(shù)status:表示處理后的狀態(tài)信息,1表示成功 0 表示失敗
參數(shù)target:表示將處理后的數(shù)據(jù)在哪個地方進行顯示(或輸出),比如:我將此參數(shù)賦為:checkbox,表示處理后的數(shù)據(jù)會在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('標題已經(jīng)存在');
}
else
{
$this->success('標題可以使用!');
}
}
else
{
$this->error('標題不能為空...');
}
}
}
?>
文章作者:WEB開發(fā)_小飛
相關(guān)文章
PHP從零開始打造自己的MVC框架之入口文件實現(xiàn)方法詳解
這篇文章主要介紹了PHP從零開始打造自己的MVC框架之入口文件實現(xiàn)方法,結(jié)合具體實例形式分析了php實現(xiàn)MVC框架入口文件的原理、定義及使用方法,需要的朋友可以參考下2019-06-06
深入掌握include_once與require_once的區(qū)別
要深入掌握include(_once)與require(_once),需要掌握以下幾點內(nèi)容,不過有人建議不建議使用2013-06-06
php獲取通過http協(xié)議post提交過來xml數(shù)據(jù)及解析xml
php 如何獲取請求的xml數(shù)據(jù),對方通過http協(xié)議post提交過來xml數(shù)據(jù),php如何獲取到這些數(shù)據(jù)呢?2012-12-12
PHP中include和require的區(qū)別實例分析
網(wǎng)上太多關(guān)于PHP中include與require區(qū)別。然而事實真的如此嗎,今天我們就通過一個具體的實例來簡單分析驗證下2017-05-05
php 隨機記錄mysql rand()造成CPU 100%的解決辦法
mysql數(shù)據(jù)庫有10幾萬條數(shù)據(jù),使用rand()提取隨機10條記錄,導致服務器cpu占用居高不下直至死機~2010-05-05

