系统支持任何的AJAX类库,Action类提供了ajaxReturn方法用于AJAX调用后返回数据给客户端。并且支持JSON、XML和EVAL三种方式给客户端接受数据,通过配置DEFAULT_AJAX_RETURN进行设置,默认配置采用JSON格式返回数据,在选择不同的AJAX类库的时候可以使用不同的方式返回数据。
要使用ThinkPHP的ajaxReturn方法返回数据的话,需要遵守一定的返回数据的格式规范。ThinkPHP返回的数据格式包括:status 操作状态
info 提示信息
data 返回数据 $this->ajaxReturn(返回数据,提示信息,操作状态);返回数据data可以支持字符串、数字和数组、对象,返回客户端的时候根据不同的返回格式进行编码后传输。如果是JSON格式,会自动编码成JSON字符串,如果是XML方式,会自动编码成XML字符串,如果是EVAL方式的话,只会输出字符串data数据,并且忽略status和info信息。下面是一个简单的例子:
复制代码$User=M("User");//实例化User对象
$result = $User->add($data);
if ($result){//成功后返回客户端新增的用户ID,并返回提示信息和操作状态$this->ajaxReturn($result,"新增成功!",1);
}else{//错误后返回错误的操作状态和提示信息$this->ajaxReturn(0,"新增错误!",0);
}复制代码$data['status'] = 1;
$data['info'] = 'info';
$data['size'] = 9;
$data['url'] = $url;
$this->ajaxReturn($data,'JSON');thinkphp源代码:
复制代码/*** Ajax方式返回数据到客户端* @access protected* @param mixed $data 要返回的数据* @param String $type AJAX返回数据格式* @return void*/protected function ajaxReturn($data,$type='') {if(func_num_args()>2) {// 兼容3.0之前用法$args           =   func_get_args();array_shift($args);$info           =   array();$info['data']   =   $data;$info['info']   =   array_shift($args);$info['status'] =   array_shift($args);$data           =   $info;$type           =   $args?array_shift($args):'';}if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');if(strtoupper($type)=='JSON') {// 返回JSON数据格式到客户端 包含状态信息header('Content-Type:text/html; charset=utf-8');exit(json_encode($data));}elseif(strtoupper($type)=='XML'){// 返回xml格式数据header('Content-Type:text/xml; charset=utf-8');exit(xml_encode($data));}elseif(strtoupper($type)=='EVAL'){// 返回可执行的js脚本header('Content-Type:text/html; charset=utf-8');exit($data);}else{// TODO 增加其它格式
        }}复制代码

thinkphp中的AJAX返回ajaxReturn()相关推荐

  1. sweetalert 2.0 ajax,处理SweetAlert2中的AJAX返回值

    我使用带有AJAX请求的SweetAlert2 Popup.一旦用户点击提交,我执行请求. 在PHP文件中,我对提交的数据进行了一些验证,根据结果,我想在SweetAlert2中为用户提供反馈作为信息 ...

  2. layer中html字符转换,在layer弹出层中通过ajax返回html拼接字符串填充数据的方法...

    1,在给一个layer弹出层做checkbox自动选中时,ViewBag传递的时object类型,用不了lambda表达式,代码如下, @foreach (var perm in ViewBag.al ...

  3. (thinkphp、jQuery)ajax返回json数据

    Thinkphp部分代码: <?php namespace Yxg\Controller;use Think\Controller;class IndexController extends C ...

  4. ajax中slidedown,Ajax返回的jQuery slideDown,使用div延迟

    我有ajax返回字符串,多个div.我需要计算字符串中的每个div(如果有必要,也许我必须创建一个数组),然后每隔x秒用一个.delay('200');滑动每个div. 请记住,每次返回时ajax返回 ...

  5. php400错误的请求,Wordpress中的Ajax返回400错误请求,但不确定如何进一步调试 - WordPress - srcmini...

    我一直试图使用Ajax将页面的数据(或其他任何东西)输出到div中.数据基于页面上的列表.尽管调用Ajax请求的jQuery函数似乎可以正常工作, 但是从Ajax调用在控制台上却收到了400个错误的请 ...

  6. 在Thinkphp中使用AJAX实现无刷新分页

    在Thinkphp目录的Lib\ORG\Util\目录里新建AjaxPage.class.php,写入一下内容: <?php // +------------------------------ ...

  7. php中ajax用法,thinkphp中使用ajax

    前端页面请求表单,接收返回值 ~~~ function aa() { $.get("{:u('Userspay/test')}",function(data,status) { / ...

  8. SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法

    1.SpringMVC中通过@ResponseBody返回对象,作为JQuery中的ajax返回值 package com.kuman.cartoon.controller; import java. ...

  9. Thinkphp 零散知识点(caa/js路径,引入第三方类,ajax返回,session/cookie)

    一.关于JS和CSS路径问题 1.找路径是从入口文件index.php来找的,而不是从文件本身所在位置来找, 因为我们访问时是访问的入口文件 2.在存放JS和CSS的时候可以放到public文件夹下 ...

最新文章

  1. 近期必读的5篇AI顶会CVPR 2020 GNN (图神经网络) 相关论文
  2. pycharm如何设置快捷键
  3. ASP.NET 5系列教程 (二):Hello World
  4. Recommend索引
  5. 树莓派制作“数码显微镜”,了解一下?
  6. 【盘它!】那些让效率MAX的工具和方法(Mac篇)
  7. Linux运维13款实用工具
  8. c语言vs开发小型数据库,用C语言开发小型数据库管理系统代码
  9. 预训练语言模型论文分类整理:综述、基准数据集、PLM的设计和分析
  10. day15:磁盘格式化和挂载
  11. python提取图片gps坐标_用python从.docx文件中提取GPS坐标
  12. private-bower
  13. VUE自学日志01-MVC和MVVM
  14. 什么是抽象类?抽象类的作用_Java面试题amp;和amp;amp;的作用和区别
  15. JAVA语法基础作业——动手动脑以及课后实验性问题(一)
  16. MFC中的几个虚函数
  17. M1 Repast Simphony打不开 无反应问题解决
  18. hua图软件 mac_CAD迷你画图for Mac-CAD迷你画图Mac版下载 V3.3.6-PC6苹果网
  19. Windows打印管理解决方案
  20. Oracle 按日期分组

热门文章

  1. 供销合作社对话中国农民丰收节交易会 谋定为农服务主业
  2. vue引入vue-amap
  3. 如何共享自己的mysql
  4. 转载 程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛? (手机游戏)...
  5. canvas手机端绘图解决方案
  6. 基于Ubuntu+Owncloud的私有云网盘
  7. VS2015安装简单的C#单元测试
  8. OBIEE 11g:Error:nQSError 36010 Server version 318 cannot read the newer version of the repository
  9. 有趣设计工作室创始人段先洲:UI设计师的名利场
  10. 【体验干货】产品经理必知:产品体验报告如何写的全而精