ajax检测用户名 .

来源:互联网 发布:nginx server配置 编辑:程序博客网 时间:2024/06/09 11:01

-- ----------------------------
-- Table structure for `ajax`
-- ----------------------------
DROP TABLE IF EXISTS `ajax`;
CREATE TABLE `ajax` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `password` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of ajax
-- ----------------------------
INSERT INTO `ajax` VALUES ('1', 'a', 'a');
INSERT INTO `ajax` VALUES ('2', 'b', 'b');


index.html


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax检测用户名</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<form name="myform">
用户名:<input type="text" name="user" onblur="checkname();">
<span id="checkbox"></span>
</form>
</body>
</html>

checkname.php


<?php
    mysql_connect("localhost",'root','123456');
    mysql_select_db('test');
    $sql="select * from ajax where name='$_GET[id]'";
    $query=mysql_query($sql);
    if(is_array(mysql_fetch_array($query))){
        echo "<font color=red>用户名已存在</font>";
    }else{
        echo "<font color=green>用户名可以使用</font>";
    }
?>


ajax.js


// JavaScript Document
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(){
    var username=document.myform.user.value;
    //alert(username);
    createXHR();    
    XHR.open("GET","checkname.php?id="+username,true);//true:表示异步传输,而不等send()方法返回结果,这正是ajax的核心思想
    XHR.onreadystatechange=byhongfei;//当状态改变时,调用byhongfei这个方法,方法的内容我们另外定义
    XHR.send(null);
}
function byhongfei(){
    if(XHR.readyState == 4){//关于Ajax引擎对象中的方法和属性,可以参考我的另一篇博文:http://www.cnblogs.com/hongfei/archive/2011/11/29/2265377.html
        if(XHR.status == 200){    
            var textHTML=XHR.responseText;            
            document.getElementById('checkbox').innerHTML=textHTML;
        }
    }
}