博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp中的AJAX返回ajaxReturn()
阅读量:7079 次
发布时间:2019-06-28

本文共 1989 字,大约阅读时间需要 6 分钟。

系统支持任何的AJAX类库,Action类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端。并且支持JSON、XML和EVAL三种方式给客户端接受数据,通过配置DEFAULT_AJAX_RETURN进行设置,默认配置采用JSON格式返回数据,在选择不同的AJAX类库的时候可以使用不同的方式返回数据。

要使用ThinkPHP的ajaxReturn方法返回数据的话,需要遵守一定的返回数据的格式规范。ThinkPHP返回的数据格式包括:

status 操作状态 info 提示信息 data 返回数据
$this->ajaxReturn(返回数据,提示信息,操作状态);

返回数据data可以支持字符串、数字和数组、对象,返回客户端的时候根据不同的返回格式进行编码后传输。如果是JSON格式,会自动编码成JSON字符串,如果是XML方式,会自动编码成XML字符串,如果是EVAL方式的话,只会输出字符串data数据,并且忽略status和info信息。

下面是一个简单的例子:

$User=M("User");//实例化User对象$result = $User->add($data);if ($result){    //成功后返回客户端新增的用户ID,并返回提示信息和操作状态    $this->ajaxReturn($result,"新增成功!",1);}else{    //错误后返回错误的操作状态和提示信息    $this->ajaxReturn(0,"新增错误!",0);}
$data['status'] = 1;$data['info'] = 'info';$data['size'] = 9;$data['url'] = $url;$this->ajaxReturn($data,'JSON');

 thinkphp源代码:

/**     * Ajax方式返回数据到客户端     * @access protected     * @param mixed $data 要返回的数据     * @param String $type AJAX返回数据格式     * @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数据格式到客户端 包含状态信息 header('Content-Type:text/html; charset=utf-8'); exit(json_encode($data)); }elseif(strtoupper($type)=='XML'){ // 返回xml格式数据 header('Content-Type:text/xml; charset=utf-8'); exit(xml_encode($data)); }elseif(strtoupper($type)=='EVAL'){ // 返回可执行的js脚本 header('Content-Type:text/html; charset=utf-8'); exit($data); }else{ // TODO 增加其它格式 } }

 

转载地址:http://cppml.baihongyu.com/

你可能感兴趣的文章
让IE10等支持classList2.0(转)
查看>>
hausaufgabe--python 31 - Pickle
查看>>
流程控制--while
查看>>
max() min()
查看>>
python print 控制台输出中文
查看>>
[C++] Deep copy ,Shallow copy, copy constructor,"="
查看>>
render httprequest
查看>>
lsattr, chattr
查看>>
redis key设置过期时间
查看>>
0514JS基础:操作document对象、事件、this
查看>>
Gtest:源码解析
查看>>
【杂题总汇】HDU2018多校赛第九场 Rikka with Nash Equilibrium
查看>>
获取FIle路径下所有文件的地址和名称
查看>>
11.HTML表单元素【中】
查看>>
浙大版《C语言程序设计(第3版)》题目集 练习3-4 统计字符 (15 分)
查看>>
oracle创建计划任务
查看>>
16进制转10进制
查看>>
windows 安装服务
查看>>
MySQL常用简单小命令
查看>>
ERROR: child process failed, exited with error number 100 mongodb报错
查看>>