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('__URL__/checkName','ajax=1&username='+$('username').value,'','result');
- }
- 《script》
-
-
-
ThinkAjax.send() 函数与 ThinkAjax.sendForm()
类似,参数如下:
第一个参数为提交服务器端处理的地址。
第二个参数为提交的具体数据。
第三个参数为如果提交成功,执行的函数名称,此处为空。
第四个参数为显示提示信息的
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
参数外,还可以:
ThinkAjax.send() 函数提交的数据中包含 ajax=1
参数,如上例子。
ThinkAjax.sendForm() 提交数据时,除了加载必要的 Ajax 实现库外,同时加载
Js/Form/CheckForm.js 类库,会指定 success/error 以 Ajax 方式返回。
ThinkAjax.sendForm()
提交数据时,加入 ajax 隐藏表单元素:
value="1">
小结
以上简单讲述了 ThinkPHP Ajax 在服务端使用 success/error
方法返回信息的方式,success/error 方法返回信息其实质是调用 ajaxReturn 方法返回信息,与 ajaxReturn
方法不同的是,success/error
方法只返回提示信息而不会返回数据信息。具体采用什么方法返回,可视具体情况而定。
上面的实例限于篇幅仅列出了关键代码,要查看该实例完整代码,请参阅《ThinkPHP
Ajax 实例代码》,或者点击此处下载完整示例代码。