项目实现目标:验证邮箱是否已经注册
项目实现过程:用户注册页面输入完邮箱后即时提醒邮箱是否可以注册
先来看html表单代码
用户名: 密码: 确认密码:
接下来看AJAX代码,我写在了一个js文件里了
var XHR; //定义一个全局对象 function createXHR(){ //首先我们得创建一个XMLHttpRequest对象 if(window.ActiveXObject){//IE的低版本系类 XHR=new ActiveXObject('Microsoft.XMLHTTP');//之前IE垄断了整个浏览器市场,没遵循W3C标准,所以就有了这句代码。。。但IE6之后开始有所改观 }else if(window.XMLHttpRequest){//非IE系列的浏览器,但包括IE7 IE8 XHR=new XMLHttpRequest(); } } function checkname(){ //这是我们html里面的自定义函数名 var username=document.form1.user_name.value; //获取表单值 createXHR(); XHR.open("GET","chkreg.php?id="+username,true);//true:表示异步传输,AJAX就体现在这里了,是异步不是同步 XHR.onreadystatechange=endcheck;//当状态改变时,调用endcheck这个方法 XHR.send(null); } function endcheck(){ if(XHR.readyState == 4){ //服务器响应已完成 if(XHR.status == 200){ //浏览器返回200状态码表示成功 var textHTML=XHR.responseText; document.getElementById('checkbox').innerHTML=textHTML;//将服务器返回的信息写入id为checkbox的span标签 } } }
最后看下后台处理数据的页面chkreg.php
require"conn.php";//引用你的连接文件 $user=$_GET['id'];//js文件中的异步传输那行中的链接,GET方式传的ID,所以这里接受传过来的ID if(!$_POST['submit']){ //非POST过来的数据,考虑到后面要写入数据库这里简单过滤下 if (!preg_match("/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/", $user)){//正则表达式判断邮箱格式是否合法 echo " 邮箱不正确"; exit; }else{ $sql="select * from usercenter where user_name='$user'"; $query=mysql_query($sql); if(mysql_num_rows($query)>0){//检索记录行数大于0表示有记录即已被注册,反之未注册 echo " 已被注册"; }else{ echo " 可以注册"; } }; };