文档章节

ThinkPHP success/error 方法返回 Ajax 信息

freedonn
 freedonn
发布于 2014/05/20 11:01
字数 766
阅读 48
收藏 0

success/error 返回 Ajax 信息

本文作为《ThinkPHP Ajax 使用详解及实例》一文的补充说明,谈谈在服务端使用 success/error 方法返回 Ajax 提示信息的实现。

要使用 success/error 方法的 Ajax 返回,必须在参数内指定 ajax=true :

$this->success(message, true);
$this->error(message, true);

也可以在表单发送时提交 ajax=1 参数,success/error 方法会自动侦测为 Ajax 方式。

例子

html 文件

Public/login.html 模板,form 表单及 Js 处理函数:

<script language="JavaScript">
    function checkName(){
	ThinkAjax.send('-Article/checkName','ajax=1&username='+$('username').value,'','result');
    }
</script>

<div id="result"></div>
<form name="login" id="form1" method="post"">
用户名: <input type="text" name="username" />
<input type="button" value="检查用户名" onClick="checkName()"><br />
</form>

ThinkAjax.send() 函数与 ThinkAjax.sendForm() 类似,参数如下:

  1. 第一个参数为提交服务器端处理的地址。

  2. 第二个参数为提交的具体数据。

  3. 第三个参数为如果提交成功,执行的函数名称,此处为空。

  4. 第四个参数为显示提示信息的 div id。

ThinkAjax.send() 函数的第二个提交数据参数写法类似于 GET 方式,但在服务器端需要用 $_POST 来接收数据。

服务端操作

输出 login.html 模板:

public function login(){
    $this->display();
}

假定服务端对用户名的检测操作为 Public/checkName :

public function checkName(){
    if ($_POST['username'] == 'admin'){
        $this->success('用户名正确~');
    }else{
        $this->error('用户名错误!');
    }
}

ThinkPHP Ajax 实现说明

该例子很简单,当点击 检查用户名 按钮时,触发 checkName() 函数将用户名提交 checkName 方法检测,如果是 admin 则使用 success 方法返回正确提示,否则使用 error 方法返回错误提示。

在服务器端 checkName 操作内,使用了 success/error 方法返回提示信息,由于在提交数据时已经提交了 ajax=1 ,因此可以省略 ajax=true 参数。

提示:

如果在服务器端使用 success/error 方法返回提示信息,如果不指定 ajax=true 参数,在客户端会提示:”服务器返回数据出错!“ 的提示信息。要避免此错误提示,除了在 success/error 方法里传入 ajax=true 参数外,还可以:

  1. ThinkAjax.send() 函数提交的数据中包含 ajax=1 参数,如上例子。

  2. ThinkAjax.sendForm() 提交数据时,除了加载必要的 Ajax 实现库外,同时加载 Js/Form/CheckForm.js 类库,会指定 success/error 以 Ajax 方式返回。

  3. ThinkAjax.sendForm() 提交数据时,加入 ajax 隐藏表单元素:

    <input type="hidden" name="ajax" value="1">

小结

以上简单讲述了 ThinkPHP Ajax 在服务端使用 success/error 方法返回信息的方式,success/error 方法返回信息其实质是调用 ajaxReturn 方法返回信息,与 ajaxReturn 方法不同的是,success/error 方法只返回提示信息而不会返回数据信息。具体采用什么方法返回,可视具体情况而定。

上面的实例限于篇幅仅列出了关键代码,要查看该实例完整代码,请参阅《ThinkPHP Ajax 实例代码》,或者点击此处下载完整示例代码。


本文转载自:http://www.5idev.com/p-thinkphp_ajax_success_error.shtml

上一篇: php数据转码函数
下一篇: 刷新验证码
freedonn

freedonn

粉丝 25
博文 258
码字总数 16565
作品 0
潍坊
程序员
私信 提问
thinkphp手册好乱啊,版本也好乱啊

关于success方法,目前的手册写的是 error方法会自动判断当前请求是否属于请求,如果属于请求则会自动转换为配置的格式返回信息。 success在请求下不返回信息,需要开发者自行处理。 为毛我看...

zibbs
05/06
183
3
Yii实战:将ThinPHP的success提示信息跳转功能移植到Yii上

本扩展是一个通用扩展,你可以将它移植到任何php项目中,该扩展来源于ThinkPHP的4个控制器方法success() error() ajaxReturn() dispatchJump()。 将jumpage目录复制到yii项目目录protectedex...

吾爱
2013/12/27
1K
4
ThinkPHP + Ajax 实现2级联动下拉菜单

首先是数据库的设计。分类表叫cate. 我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。...

Jceee
2014/04/07
6.9K
7
采用ThinkPHP开发腾讯分分彩极速玩法游戏源码下载搭建架设

腾讯分分彩极速玩法架设源码教程:Q:2947702644 【游戏特色】 运行环境:WIN+APACHE+PHP5.4+MYSQL5.6+伪静态 源码授权:无加密文件及认证授权,永久性可直接使用。 版本支持:PC/WAP网页版 ...

raye1
2018/07/04
0
0
ThinkPHP 查询数据 select(findAll) 方法

ThinkPHP 查询数据 ThinkPHP 查询数据主要提供以下几类查询: select:普通查询,同 findAll() 方法 find:取得符合查询条件的一条记录 getBy动态查询:根据某个字段取得符合查询条件的一条记...

WangEven
2012/05/10
159
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部