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 的几个配置文件函数
Dec 21 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
PHP MPDF中文乱码的解决方式
Dec 08 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
Python实现统计代码行的方法分析
2017/07/12 Python
flask中过滤器的使用详解
2018/08/01 Python
如何更优雅地写python代码
2019/07/02 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
金讯Java笔试题目
2013/06/18 面试题
非常详细的C#面试题集
2016/07/13 面试题
写好自荐信需做到的5要点
2014/03/07 职场文书
工伤事故证明
2014/10/20 职场文书
学术研讨会主持词
2015/07/04 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技