php+ajax注册验证实例(完整代码)

var xmlHttp function showUser(str)
//这就是上面调用的函数体{xmlHttp=GetXmlHttpObject()
//首先判断浏览器是否支持HTTP Requestif (xmlHttp==null){alert (Browser
does not support HTTP Request)return}var url=getuser.php
//这里是你的PHP函数名,就是这个函数里写的SQL语句拉.url=url+?q=+str
//这是后面跟的参数url=url+sid=+Math.random()
//他在在这里创建了一个随机数xmlHttp.onreadystatechange=stateChanged
//调用stateChanged判断状态(这里的有些东西大家要查一下)xmlHttp.open(GET,url,true)
//OPEN传递进来的URL
TRUE就是表示异步传输,就是页面不刷新xmlHttp.send(null) //发送}

html代码

function stateChanged(){if (xmlHttp.readyState==4 ||
xmlHttp.readyState==complete) //判断readyState的状态
{document.getElementById(txtHint).innerHTML=xmlHttp.responseText//红色部分感觉熟悉吗?就是上面HTML页面里的ID号.这里将返回的结果innerHTML的方法写进txtHint}}
//下面这个函数是针对不用浏览器对XMLHttpRequest的不同支持而写的不同创建方法function
GetXmlHttpObject(){var xmlHttp=null;try{// Firefox, Opera 8.0+,
SafarixmlHttp=new XMLHttpRequest();}catch (e){//Internet Explorertry {
xmlHttp=new ActiveXObject(Msxml2.XMLHTTP); }catch (e) { xmlHttp=new
ActiveXObject(Microsoft.XMLHTTP); }}return xmlHttp;}

 代码如下

$q=$_GET[q];

<script src=”ajax.js”></script>
<form>
<table>
<tr>
  <td>用户名:</td>
  <td><input type=”text” id=”txt1″
onKeyUp=”showHint(this.value)”></td>
 </tr>
 <tr align=”center”>
  <td colspan=”2″><span
id=”txtHint”></span></td>
 </tr>
</table>
</form>

$con = mysql_connect(‘localhost’, ‘peter’, ‘abc123’);if
(!$con){die(‘Could not connect: ‘ . mysql_error());}

js文件代码

mysql_select_db(ajax_demo, $con);

 代码如下

$sql=SELECT * FROM user WHERE id = ‘.$q.’;

var xmlHttp
function showHint(str)
{
if (str.length==0)
  {
  document.getElementById(“txtHint”).innerHTML=””
  return
  }
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert (“Browser does not support HTTP Request”)
  return
  }
xmlHttp.onreadystatechange=stateChanged

$result = mysql_query($sql);

var geturl=”conn.php?q=”+str
//sid是增加一个随机数 防止页面启用缓存技术·
geturl=geturl+”&sid=”+Math.random()
geturl=encodeURI(geturl);
geturl=encodeURI(geturl);
xmlHttp.open(“GET”,geturl,true)
xmlHttp.send(null)
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState==”complete”)
 {
 document.getElementById(“txtHint”).innerHTML=xmlHttp.responseText
 }
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
  }
 }
return xmlHttp;
}

//下面的echo语句就是要返回给前台页面的HTML代码.最后就是下面这些HTML代码显示在ID为txtHint的DIV里面

php操作

echo ;

 代码如下

while($row = mysql_fetch_array($result)){echo [tr];echo [td] .
$row[‘FirstName’] . [/td];echo [td] . $row[‘LastName’] .
[/td];echo [td] . $row[‘Age’] . [/td];echo [td] .
$row[‘Hometown’] . [/td];echo [td] . $row[‘Job’] . [/td];echo
[/tr];}echo
[table][tr][td]Firstname[/td][td]Lastname[/td][td]Age[/td][td]Hometown[/td][td]Job[/td][/tr][/table];

<?php
$q=$_GET[“q”];
$q = urldecode($q);

mysql_close($con);?

if (strlen($q) > 0)
{
  $conn = @mysql_connect(“localhost”,”root”,”1010″) or die
(“MySql连接错误”);
  mysql_select_db(“xin”,$conn);
  mysql_query(“set names ‘utf8′”);
  
  $sql = “SELECT username FROM message WHERE username = ‘$q'”;
  $query = mysql_query($sql);
  @$row = mysql_fetch_array($query);
  
  if(!empty($row[‘username’]))
  {
   $response = “<font color=red>已经被注册!</font>”;
  }else
  {
   $response = “<font color=blue>恭喜!可以注册!</font>”;
  }
  
  echo $response;
}

?>

最后再给出数据库

 代码如下

DROP DATABASE IF EXISTS `xin`;
CREATE DATABASE `xin` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `xin`;

CREATE TABLE `message` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

发表评论

电子邮件地址不会被公开。 必填项已用*标注