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 zend解密软件绿色版测试可用
Apr 14 PHP
php auth_http类库进行身份效验
Mar 19 PHP
php 获取客户端的真实ip
Nov 30 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
php简单复制文件的方法
May 09 PHP
PHP定义字符串的四种方式详解
Feb 06 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序列化/对象注入漏洞分析
2016/04/18 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
JS中的==运算: [''] == false —>true
2016/07/24 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
详细分析python3的reduce函数
2017/12/05 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
pytorch梯度剪裁方式
2020/02/04 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
《蜗牛》教学反思
2014/02/18 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
爱护公物标语
2014/06/24 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
关于分班的感言
2015/08/04 职场文书
关于 Python json中load和loads区别
2021/11/07 Python
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
Echarts如何重新渲染实例详解
2022/05/30 Javascript