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 相关文章推荐
PHP-MySQL教程归纳总结
Jun 07 PHP
php 进度条实现代码
Mar 10 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
php增删改查示例自己写的demo
Sep 04 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
Jun 12 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
PHP实现原比例生成缩略图的方法
Feb 03 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
php字符集转换
Jan 23 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
yii2多图上传组件的使用教程
May 10 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 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中Object对象的笔记分享
2011/06/28 PHP
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
JS trim去空格的最佳实践
2011/10/30 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python字符串中查找子串小技巧
2015/04/10 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python读取指定字节长度的文本方法
2019/08/27 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
Python生成词云的实现代码
2020/01/14 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
什么叫做SQL注入,如何防止
2016/10/04 面试题
护士毕业实习感言
2014/03/05 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python