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() 类似,参数如下:
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('用户名错误!'); } }
该例子很简单,当点击 检查用户名 按钮时,触发 checkName() 函数将用户名提交 checkName 方法检测,如果是 admin 则使用 success 方法返回正确提示,否则使用 error 方法返回错误提示。
在服务器端 checkName 操作内,使用了 success/error 方法返回提示信息,由于在提交数据时已经提交了 ajax=1 ,因此可以省略 ajax=true 参数。
提示:如果在服务器端使用 success/error 方法返回提示信息,如果不指定 ajax=true 参数,在客户端会提示:”服务器返回数据出错!“ 的提示信息。要避免此错误提示,除了在 success/error 方法里传入 ajax=true 参数外,还可以:
<input type="hidden" name="ajax" value="1">
以上简单讲述了 ThinkPHP Ajax 在服务端使用 success/error 方法返回信息的方式,success/error 方法返回信息其实质是调用 ajaxReturn 方法返回信息,与 ajaxReturn 方法不同的是,success/error 方法只返回提示信息而不会返回数据信息。具体采用什么方法返回,可视具体情况而定。
上面的实例限于篇幅仅列出了关键代码,要查看该实例完整代码,请参阅《ThinkPHP Ajax 实例代码》,或者点击此处下载完整示例代码。