PHP+Ajax的用法很简单,下面以验证用户名为例。 只要把执行流程搞明白就很好理解了。废话不多说,直接上代码!
下面是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" /> <META HTTP-EQUIV="expires" CONTENT="0"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <title>PHP+AJAX注册用户名验证</title> </head> <body> <div id="login"> <h1>PHP+Ajax</h1> <form id="frmlogin" name="frmlogin"> <label>用户名:<span style="white-space:pre"> </span><!--可以把onblur换成onkeyup--> <input name="username" type="text" id="username" onblur="chkUserName(this)" /> </label><label id="tip"></label> <p> <label>密 码: <input name="pwd" type="password" id="pwd" size="24" maxlength="16" /> </label> </p> <p align="center"> <input name="Submit" type="submit" class="button" id="btn_login" value="注册" /> </p> </form> </div> </body> </html>
下面是JavaScript页面:
var xmlhttp = false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { //这里是判断浏览器是不是最新版本。 try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { xmlhttp = new XMLHttpRequest(); } function Ajax(data){ xmlhttp.open("GET","checkName.php?username="+escape(document.getElementById("username").value),true); xmlhttp.send(null); xmlhttp.onreadystatechange=function(){ if (4==xmlhttp.readyState){ if (200==xmlhttp.status){ //执行的状态 //接收返回的值 document.getElementById("tip").innerHTML=xmlhttp.responseText; }else{ alert("出现异常!"); } } } } //这一步可以省略,可以在用户名标签中直接调用上面的Ajax方法。 function chkUserName(obj){ if(obj.value.length<1){ obj.style.backgroundColor="#efefef"; alert("请输入用户名!"); obj.focus(); }else{ //调用Ajax函数,向服务器端,也就是php页面发送查询 Ajax(obj.value); } }
下面是Php页面:
<?php /*数据库连接*/ $conn=@mysql_connect("localhost:3309","root","密码"); mysql_query("SET NAMES UTF8"); mysql_select_db("数据库",$conn); //设置页面编码 header("Content-type:text/html;charset=UTF-8"); //查询数据库 if(isset($_GET["username"])){ //可以把$_GET["username"]换成$_REQUEST["username"] $strsql="SELECT * FROM 表名 WHERE username='".$_GET["username"]."'"; $result=mysql_query($strsql); $rows=@mysql_num_rows($result); mysql_close($conn); //判断是否有此记录 if($rows){ echo "已被注册!"; }else{ echo "此用户名未被注册!"; } }else{ echo "出现异常!"; }?>
如果用把javaScript换成Jquery的话,比这个简单多了。