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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
php面向对象全攻略 (十六) 对象的串行化
Sep 30 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
PHP取进制余数函数代码
Jan 19 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
php去掉文件前几行的方法
Jul 29 PHP
twig模板常用语句实例小结
Feb 04 PHP
PHP 文件上传后端处理实用技巧方法
Jan 06 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 PHP
Yii2框架中一些折磨人的坑
Dec 15 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
javascript作用域和闭包使用详解
2014/04/25 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
python使用wxpython开发简单记事本的方法
2015/05/20 Python
详解Django通用视图中的函数包装
2015/07/21 Python
python编码最佳实践之总结
2016/02/14 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
英国现代市场:ARKET
2019/04/10 全球购物
房产转让协议书
2014/04/11 职场文书
项目负责人任命书
2014/06/04 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
结对共建协议书
2014/08/20 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
答谢酒会主持词
2015/07/02 职场文书
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记