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 相关文章推荐
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
请php正则走开
Mar 15 PHP
php 数组的创建、调用和更新实现代码
Mar 09 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
php 判断数组是几维数组
Mar 20 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
php比较两个字符串长度的方法
Jul 13 PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 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 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
2017/04/25 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
Python中的高级数据结构详解
2015/03/27 Python
Python中Random和Math模块学习笔记
2015/05/18 Python
Python 加密的实例详解
2017/10/09 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
Python实现Dijkstra算法
2018/10/17 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
经济系大学生求职信
2013/10/01 职场文书
大学毕业寄语大全
2014/04/10 职场文书
说明书范文
2014/05/07 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android