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将数据导入到Foxmail
Oct 09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
Feb 22 PHP
在PHP中实现Javascript的escape()函数代码
Aug 08 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
通过php修改xml文档内容的方法
Jan 23 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP批量删除jQuery操作
Jul 23 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 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 高手之路(二)
2006/10/09 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php以post形式发送xml的方法
2014/11/04 PHP
分享php邮件管理器源码
2016/01/06 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
如何打开php的gd2库
2017/02/09 PHP
php通过各种函数判断0和空
2020/07/04 PHP
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
vue 循环加载数据并获取第一条记录的方法
2018/09/26 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
python读取注册表中值的方法
2013/04/08 Python
说一说Python logging
2016/04/15 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
简历里的自我评价
2014/01/31 职场文书
初中信息技术教学计划
2015/01/22 职场文书
小型婚礼主持词
2015/06/30 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
MySQL创建管理子分区
2022/04/13 MySQL