【05】AJAX实例-检测用户名是否存在(实例)
AJAX实例-检测用户名是否存在
用户注册时,需要填写个人信息,其中包括用户名。当用户输入完成时,JavaScript 需要及时检测用户名是否存在,如果存在给出提示,请用户更换用户名。
当然,这个步骤可以在用户提交表单以后由后台程序检测,如果用户名已存在,用户需要返回注册页面重新填写用户名,而前面填写的其他信息也随着网页的跳转已经过期,全部需要重填,这对用户来说是极大的伤害。
因此,有必要使用 AJAX 在用户不提交信息的情况下及时检测用户名是否存在。
前台代码:
后台代码(PHP):
实例演示(输入完成,请将焦点离开输入框):
说明:"admin"、"xiaoming"和"zhangsan"三个用户名已存在。
当然,这个步骤可以在用户提交表单以后由后台程序检测,如果用户名已存在,用户需要返回注册页面重新填写用户名,而前面填写的其他信息也随着网页的跳转已经过期,全部需要重填,这对用户来说是极大的伤害。
因此,有必要使用 AJAX 在用户不提交信息的情况下及时检测用户名是否存在。
前台代码:
<p>请输入用户名:<input type="text" id="demo"/><span id="result"></span></p><script type="text/javascript">document.getElementById("demo").onblur=function(){// 输入框失去焦点var thisNode=this;var span=document.getElementById("result");var xmlhttp;try{// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=newXMLHttpRequest();}catch(e){// code for IE6, IE5xmlhttp=newActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState<4){// 正在交互span.style.color="blue";span.innerHTML="正在检测...";}if(xmlhttp.readyState==4&& xmlhttp.status==200){// 请求成功if(parseInt(xmlhttp.responseText)){// 将服务器返回的数据转换为整数span.style.color="red";span.innerHTML="抱歉,您填写的用户名已经存在!";}else{span.style.color="green";span.innerHTML="恭喜你,填写正确!";}}}xmlhttp.open("POST","http://localhost/moyu.php?action=checkUserName",true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.send("username="+thisNode.value);}</script>
后台代码(PHP):
<?phpif($_GET['action']=="checkUserName"){// 为简单起见,这里不再查询数据库,使用 3 个用户名作为示例if($_POST['username']=="admin"||$_POST['username']=="xiaoming"||$_POST['username']=="zhangsan"){echo 1;}else{echo 0;}}?>
实例演示(输入完成,请将焦点离开输入框):
请输入用户名:
说明:"admin"、"xiaoming"和"zhangsan"三个用户名已存在。
魔芋测试:





浙公网安备 33010602011771号