今天查看原来做的页面注册代码,发现用了jQuery的ajax,看看笔记居然找到了记录下来的使用方法。异步请求太重要了,经常需要用到,比如页面注册检查是否已存在用户、验证码是否正确、口令是否正确等,不需要刷新页面就可以事实提示了。把原来的笔记记录来这里:
首先要引入jQuery,因为这是用jq实现的,用JavaScript原生态的要实现这个功能需要写很多的判断,用jq简单方便。
<script type="text/javascript">
$('#zan').click(function(){
/* $.post("/blog/love.php?bid="+<?php echo $blog['bid'];?>); */
$.ajax({
async:true,//异步方式开启
type:'post',//提交表单方式,默认是get
//url:"/blog/love.php?bid="+<?php echo $blog['bid'];?>,//提交的地址
url:'URL',//提交的地址
//timeout:10,//请求时间毫秒
beforeSend:function(){ //发送前
$('#zanCount').css('background','pink');
},
cache:false,//是否缓存,默认false
date:function(){//发送到服务器的数据
"You are my love but I don't want to beyond!";
},
error:function(){//请求失败时执行内容
alert("点赞失败");
},
success:function(){//请求成功执行内容
$('#zan').attr('disabled',true);
$('#zanCount').html("已赞[<?php echo $blog['zan']+1;?>]");
},
complete:function(){//执行完成后,不管请求成不成功,都进行还原
$('#zanCount').css('background','#E6BDC0');
}
});
});
//理想很美好,可惜你不会跟我走
</script>
案例2 :验证用户是否存在
ajax代码:
$("#username").blur(function(){ $.post("{:U('/Home/Login/check_user')}",{ username : $("#username").val()//username 是提交的内容 }, function(data){ if(data == 1){ $('#user_check').css('color','red') $("#user_check").html("该用户名已被注册!") }else( $("#user_check").html("该用户名可用!") ) }) })html代码:
<div> <label for="user">用户名:</label><span id="user_check"></span> <input type="text" class="form-control" id="username" name="username" placeholder="支持中文、英文、数字及其组合" /> </div>php代码(我用thinkphp)
//检查用户是否存在 public function check_user(){ $users = D('tea_user'); $user = I('post.username'); $check = $users->where(array('username'=>$user))->find(); if($check){ $data = 1; $this->ajaxReturn($data); }else{ $data = 0; $this ->ajaxReturn($data); } }
如果已经存在相同的用户名,效果如下: