ajax.js
var xmlHttp;function CreateXMLHttpRequest(){
if(window.XMLHttpRequest){
//Mozilla 浏览器
xmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
//IE浏览器
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHttp");
}
catch(e){
try{
cmlHttp=new ActiveXObject("Microsoft.XMLHttp");
}catch(e){}
}
}
if(xmlHttp==null){
alert("不能创建XMLHttpRequest对象");
return false;
}
}
function sendAsynchronRequest(url,parameter,callback){
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
if(parameter==null){
//设置XMLHttpRequest对象的属性参数
//设置onreadystatechange
//保存一个回调函数指针
xmlHttp.onreadystatechange=callback;
//设置对服务器调用的参数
xmlHttp.open("GET",url,true);
//调用send方法就会向服务器端发起一个异步请求
//去访问由URL指定的资源
xmlHttp.sned(null);
//服务器断处理完请求后开始返回response
//并由XMLHttpRequest对象开始接收
}else{
xmlHttp.onreadystatechange=callback;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
//参数放置在请求体
xmlHttp.send(parameter);
}
}check.js
function checkname(){
var url="check.php";
var username=document.getElementById("username").value;
var checkusername=document.getElementById("checkusername");
var parameter="username="+username+"&action=username";
checkusername.innerHTML="验证中....";
sendAsynchronRequest(url,parameter,checknameback);
}
function ckecknameback(){
varresult=xmlHttp.responceText;
var checkusername=document.getElementById("checkusername");
checkusername.innerHTML=result;
}
var xmlHttp;function CreateXMLHttpRequest(){
if(window.XMLHttpRequest){
//Mozilla 浏览器
xmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
//IE浏览器
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHttp");
}
catch(e){
try{
cmlHttp=new ActiveXObject("Microsoft.XMLHttp");
}catch(e){}
}
}
if(xmlHttp==null){
alert("不能创建XMLHttpRequest对象");
return false;
}
}
function sendAsynchronRequest(url,parameter,callback){
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
if(parameter==null){
//设置XMLHttpRequest对象的属性参数
//设置onreadystatechange
//保存一个回调函数指针
xmlHttp.onreadystatechange=callback;
//设置对服务器调用的参数
xmlHttp.open("GET",url,true);
//调用send方法就会向服务器端发起一个异步请求
//去访问由URL指定的资源
xmlHttp.sned(null);
//服务器断处理完请求后开始返回response
//并由XMLHttpRequest对象开始接收
}else{
xmlHttp.onreadystatechange=callback;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
//参数放置在请求体
xmlHttp.send(parameter);
}
}check.js
function checkname(){
var url="check.php";
var username=document.getElementById("username").value;
var checkusername=document.getElementById("checkusername");
var parameter="username="+username+"&action=username";
checkusername.innerHTML="验证中....";
sendAsynchronRequest(url,parameter,checknameback);
}
function ckecknameback(){
varresult=xmlHttp.responceText;
var checkusername=document.getElementById("checkusername");
checkusername.innerHTML=result;
}
require_once ("class/db.class.php");
@$username=$_REQUEST['username'];
@$action=$_GET['action'];
switch($action){
case "username":
if(empty($username)){
echo "<font color='red'>用户名不能为空!</font>";
$_SESSION['username']=0;
}else{
$db=new db;
$db->conn();
$sel_info=$db->sel_info($username);
if(empty($sel_info)){
if(preg_match("/^[^0-9]/",$username)){
if(preg_match("/[',:;*~`!#$%^&+=)(<>{}]|\]|\[|\/|\\\|\"|\|/",$username)){
echo "<font color='red'>包含非法字符!</font>";
$_SESSION['username']=0;
}else{
echo "<font color='green'>用户名有效!</font>";
$_SESSION['username']=1;
}
}else{
echo "<font color='red'>不能以数字开头!</font>";
$_SESSION['username']=0;
} }else{
echo "<font color='red'>用户名已被占用!</font>";
$_SESSION['username']=0;
}
}
break;
}
这是check.php
<div id="username" class="style2"><font color=red>*</font>用 户 名:<input type="text" name="username" id="username" class="ab" onblur="checkname();">
<span name="checkusername" id="checkusername"></span>
</div>
这个是我的注册页面用户名那栏,我输入字符之后只会显示验证中....,我想问是不是ajax的异步请求没有成功啊,各位高手救救我啊
要改成xmlHttp这几个改了估计差不多了
这个怎么改啊,先说本人刚接触ajax,几乎是什么也不会,如果可以的话尽量详细点,呵呵
<span name="checkusername" id="checkusername"></span>
</div>
<script>var xmlHttp;function CreateXMLHttpRequest(){
if(window.XMLHttpRequest){
//Mozilla 浏览器
xmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
//IE浏览器
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHttp");
}
catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHttp");
}catch(e){}
}
}
if(xmlHttp==null){
alert("不能创建XMLHttpRequest对象");
return false;
}
}function sendAsynchronRequest(url,parameter,callback){
//创建一个XMLHttpRequest对象
CreateXMLHttpRequest();
if(parameter==null){
//设置XMLHttpRequest对象的属性参数
//设置onreadystatechange
//保存一个回调函数指针
xmlHttp.onreadystatechange=callback;
//设置对服务器调用的参数
xmlHttp.open("GET",url,true);
//调用send方法就会向服务器端发起一个异步请求
//去访问由URL指定的资源
xmlHttp.sned(null);
//服务器断处理完请求后开始返回response
//并由XMLHttpRequest对象开始接收
}else{
xmlHttp.onreadystatechange=callback;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
//参数放置在请求体
xmlHttp.send(parameter);
}
}function checkname(){
var url="check.php";
var username=document.getElementById("username").value;
var checkusername=document.getElementById("checkusername");
var parameter="username="+username+"&action=username";
checkusername.innerHTML="验证中....";
sendAsynchronRequest(url,parameter,checknameback);
}
function checknameback(){
var result=xmlHttp.responseText;
var checkusername=document.getElementById("checkusername");
checkusername.innerHTML=result;
}
</script>
这是一个回调函数,找你代码里的意思应该是:
xmlHttp.onreadystatechange=function (){
//这里应该做一个状态判断
if(xmlHttp.status==200)
var result=xmlHttp.responceText;
var checkusername=document.getElementById("checkusername");
checkusername.innerHTML=result;
}
}
@$action=$_GET['action'];你ajax 是POST方式提交的,$_GET 替换成$_REQUEST试试