thinkphp中的AJAX返回ajaxReturn()
生活随笔
收集整理的這篇文章主要介紹了
thinkphp中的AJAX返回ajaxReturn()
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
系統(tǒng)支持任何的AJAX類庫,Action類提供了ajaxReturn方法用于AJAX調(diào)用后返回數(shù)據(jù)給客戶端。并且支持JSON、XML和EVAL三種方式給客戶端接受數(shù)據(jù),通過配置DEFAULT_AJAX_RETURN進行設(shè)置,默認(rèn)配置采用JSON格式返回數(shù)據(jù),在選擇不同的AJAX類庫的時候可以使用不同的方式返回數(shù)據(jù)。
要使用ThinkPHP的ajaxReturn方法返回數(shù)據(jù)的話,需要遵守一定的返回數(shù)據(jù)的格式規(guī)范。ThinkPHP返回的數(shù)據(jù)格式包括:status 操作狀態(tài)
info 提示信息
data 返回數(shù)據(jù) $this->ajaxReturn(返回數(shù)據(jù),提示信息,操作狀態(tài));返回數(shù)據(jù)data可以支持字符串、數(shù)字和數(shù)組、對象,返回客戶端的時候根據(jù)不同的返回格式進行編碼后傳輸。如果是JSON格式,會自動編碼成JSON字符串,如果是XML方式,會自動編碼成XML字符串,如果是EVAL方式的話,只會輸出字符串data數(shù)據(jù),并且忽略status和info信息。下面是一個簡單的例子:
復(fù)制代碼$User=M("User");//實例化User對象
$result = $User->add($data);
if ($result){//成功后返回客戶端新增的用戶ID,并返回提示信息和操作狀態(tài)$this->ajaxReturn($result,"新增成功!",1);
}else{//錯誤后返回錯誤的操作狀態(tài)和提示信息$this->ajaxReturn(0,"新增錯誤!",0);
}復(fù)制代碼$data['status'] = 1;
$data['info'] = 'info';
$data['size'] = 9;
$data['url'] = $url;
$this->ajaxReturn($data,'JSON');thinkphp源代碼:
復(fù)制代碼/*** Ajax方式返回數(shù)據(jù)到客戶端* @access protected* @param mixed $data 要返回的數(shù)據(jù)* @param String $type AJAX返回數(shù)據(jù)格式* @return void*/protected function ajaxReturn($data,$type='') {if(func_num_args()>2) {// 兼容3.0之前用法$args = func_get_args();array_shift($args);$info = array();$info['data'] = $data;$info['info'] = array_shift($args);$info['status'] = array_shift($args);$data = $info;$type = $args?array_shift($args):'';}if(empty($type)) $type = C('DEFAULT_AJAX_RETURN');if(strtoupper($type)=='JSON') {// 返回JSON數(shù)據(jù)格式到客戶端 包含狀態(tài)信息header('Content-Type:text/html; charset=utf-8');exit(json_encode($data));}elseif(strtoupper($type)=='XML'){// 返回xml格式數(shù)據(jù)header('Content-Type:text/xml; charset=utf-8');exit(xml_encode($data));}elseif(strtoupper($type)=='EVAL'){// 返回可執(zhí)行的js腳本header('Content-Type:text/html; charset=utf-8');exit($data);}else{// TODO 增加其它格式
}}復(fù)制代碼
?
總結(jié)
以上是生活随笔為你收集整理的thinkphp中的AJAX返回ajaxReturn()的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装visual studio 2013
- 下一篇: Zabbix监控华为交换机CPU、温度并