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 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
elgg 获取文件图标地址的方法
Mar 20 PHP
PHPExcel读取Excel文件的实现代码
Dec 06 PHP
深入php常用函数的使用汇总
Jun 08 PHP
php生成RSS订阅的方法
Feb 13 PHP
php微信支付之APP支付方法
Mar 04 PHP
WordPress中自定义后台管理界面配色方案的小技巧
Dec 29 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 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
php开发环境配置记录
2011/01/14 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
学习python (2)
2006/10/31 Python
python函数的5种参数详解
2017/02/24 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
python获取栅格点和面值的实现
2020/03/10 Python
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
中学生自我评价范文
2014/02/08 职场文书
火箭队口号
2014/06/18 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
工作失职检讨书500字
2014/10/17 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
毕业生评语大全
2015/01/04 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
AngularJS实现多级下拉框
2022/03/25 Javascript