ajax

在服务端使用 success/error 方法返回 Ajax 提示信息的实现 ...

ThinkPHP success/error 方法返回 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('__URL__/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 方法只返回提示信息而不会返回数据信息。具体采用什么方法返回,可视具体情况而定。

本文属原创,转载请注明原文:http://www.zhimatong.com/jiaocheng/603.html

为保证教程的实用性及扩大知识面覆盖,如果您有相似问题而未解决,可联系在线客服免费技术支持。

内容有用

联系
顾问

在线
客服
购物车
账号登录

没有账号?立即注册

忘记密码

登录即同意用户协议没有账号? 立即注册
账号注册
我已阅读并同意用户协议
立即注册
注册即同意用户协议已有账号? 立即登录
找回密码

操作步骤:邮箱验证->设置新密码

注册即同意用户协议已有账号? 立即登录