ThinkPHP3.1新特性之对Ajax的支持更加完善


Posted in PHP onJune 19, 2014

ThinkPHP3.1版对AJAX的支持更加完善了,具体表现在:

1.判断AJAX方式改进

现在可以直接使用常量IS_AJAX来判断是否AJAX方式请求,用来取代之前的Action类的isAjax方法,优势是可以在任何代码里面进行判断。而Action类的error和success方法内置就支持对AJAX自动判断支持。

2.ajaxReturn方法完善

原来的ajaxReturn方法只能返回固定结构的数据,包括data、status和info索引信息,如果需要扩展额外的返回数据信息,只能通过ajaxAssign方法,而ThinkPHP3.1版本则改进了ajaxReturn方法本身,可以更好的支持ajax数据扩展,例如:

$data['status'] = 1;
$data['info'] = '返回信息';
$data['data'] = '返回数据';
$data['url'] = 'URL地址';
$this->ajaxReturn($data);

data传值数组可以随意定义。
改进后的ajaxReturn方法也兼容之前的写法,例如:

$this->ajaxReturn($data,'info',1);

系统会自动把info和1两个参数并入$data数组中,等同于赋值

$data['info'] = 'info';
$data['status'] = 1;
$data['data'] = $data;
$this->ajaxReturn($data);

但这种用法不再建议使用了。

3.success和error方法完善对ajax支持

如果是ajax方式下面,Action类的success和error方法都做了改进支持,这两个方法的参数会转换成ajaxReturn方法的data数据的info、status和url参数。还可以支持传入其他的参数,有两种方式支持ajax传值。以success方法为例,第一种方式是直接传入ajax数据

$data['code'] = 200;
$data['name'] = 'ThinkPHP';
$this->success('成功提示信息','跳转地址',$data);

或者采用

$this->assign('code',200);
$this->assign('name','thinkphp');
$this->success('成功提示信息','跳转地址');

最终返回给客户端的ajax数据信息是一个数组,包括name、code、info、status和url。

PHP 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
使PHP自定义函数返回多个值
Nov 26 PHP
精通php的十大要点(上)
Feb 04 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
PHP Reflection API详解
May 12 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
Oct 28 PHP
PHP读取文件的常见几种方法
Nov 03 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
laravel自定义分页效果
Jul 23 PHP
PHP http请求超时问题解决方案
Nov 13 PHP
php数组合并array_merge()函数使用注意事项
Jun 19 #PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 #PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 #PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 #PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 #PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 #PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 #PHP
You might like
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
一次编写,随处运行
2006/10/09 PHP
非常好的php目录导航文件代码
2006/10/09 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
基于PHP实现的多元线性回归模拟曲线算法
2018/01/30 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
jquery连缀语法如何实现
2012/11/29 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
AngularJS的脏检查深入分析
2017/04/22 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
如何正确解决VuePress本地访问出现资源报错404的问题
2020/12/03 Vue.js
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
PyQt5响应回车事件的方法
2019/06/25 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
致100米运动员广播稿
2014/02/14 职场文书
市场营销专业毕业生求职信
2014/03/26 职场文书
工作散漫检讨书
2014/09/16 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书