例子功能与《ThinkPHP Ajax 使用详解及实例》一样,点击(实际使用中也可以使用其他事件来替代) “检测用户名” 按钮检测用户名是否符合要求,点击 “提交” 按钮根据输入的用户名返回不同的信息。
Public/loginJauery.html 模板,Js 处理函数及 form 表单:
<script language="JavaScript">
<!--
function checkName(){
$.post('-Article/checkName',{'username':$('#username').val()},function(data){
$('#result').html(data.info).show();
$("#result").fadeOut(4000);
},'json');
}
$(function(){
$('#form1').ajaxForm({
beforeSubmit: checkForm, // 表单提交执行前检测
success: complete, // 表单提交后执行函数
dataType: 'json'
});
function checkForm(){
if( '' == $.trim($('#username').val())){
$('#result').html('用户名不能为空!').show();
$("#result").fadeOut(4000);
$('#username').focus();
return false;
}
// 可以在此添加其它判断
}
function complete(data){
if(data.status==1){
$('#result').html(data.info).show();
// 更新列表
username = data.data;
$('#list').html('<span style="color:blue">'+username+'你好!</span>');
}else{
$('#result').html(data.info).show();
// 隐藏上次遗留的信息
$('#list').hide();
}
}
});
//-->
</script>
<div id="result"></div>
<div id="list"></div>
<form name="login" id="form1" method="post" action="-Article/checkLogin">
用户名: <input type="text" name="username" id="username" />
<input type="button" value="检查用户名" onClick="checkName()"><br />
密 码: <input type="password" name="password" /><br />
<input type="hidden" name="ajax" value="1">
<input type="submit" value="提 交">
</form>
输出 loginJquery.html 模板:
public function loginJquery(){
$this->display();
}
checkName 及 checkLogin 操作与《ThinkPHP Ajax 使用详解及实例》一文完全一致,为便于查看下面再行列出:
public function checkName(){
if ($_POST['username'] == 'admin'){
$this->success('用户名正确~');
}else{
$this->error('用户名错误!');
}
}
public function checkLogin(){
if ($_POST['username'] == 'admin'){
$this->ajaxReturn($_POST['username'],'用户名正确~',1);
}else{
$this->ajaxReturn('','用户名错误!',0);
}
}
当表单中输入的用户名是 admin 的时候,返回正确信息,否则返回用户名错误的提示。更进一步的,可以将上述 checkLogin 方法进行扩展成为用户登陆检测功能模块。
以上是 ThinkPHP JQuery Ajax 的实现过程及关键代码部分,如果您对 ThinkPHP Ajax 还不是很熟悉,还请同时参考本节前面两篇文章《ThinkPHP Ajax 使用详解及实例》与《ThinkPHP success/error 方法返回 Ajax 信息》。
要查看该实例完整代码,请参阅《ThinkPHP Ajax 实例代码》,或者点击此处下载完整代码。