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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
社区(php&&mysql)二
Oct 09 PHP
php简单封装了一些常用JS操作
Feb 25 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
解析ajax事件的调用顺序
Jun 17 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
php实现加减法验证码代码
Feb 14 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
Dec 16 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 PHP
laravel配置Redis多个库的实现方法
Apr 10 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
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php cookie 详解使用实例
2016/11/03 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
javascript数组排序汇总
2015/07/07 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
react 生命周期实例分析
2020/05/18 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
python用字典统计单词或汉字词个数示例
2014/04/22 Python
JSON Web Tokens的实现原理
2017/04/02 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
单利模式及python实现方式详解
2018/03/20 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
个人能力自我鉴赏
2014/01/25 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
通信工程专业求职信
2014/06/04 职场文书
学习十八大演讲稿
2014/09/15 职场文书
2014年销售工作总结
2014/12/01 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
Oracle 死锁的检测查询及处理
2021/09/25 Oracle
分享几种python 变量合并方法
2022/03/20 Python
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
python实现简单的三子棋游戏
2022/04/28 Python