使用xmlhttp检测表单与数据库是否重复.
离开文本框,马上检测文本框的数据是否与数据库里面重复,如果重复就提示出来.
但我不会AJAX,所以想用XMLHTTP.但是不行,没反应.请教大家了.
<body>
<div id= "show_div " align= "center "> 正在进行验证,请等待…… </div>
<form name= "form1 " method= "post " action= " ">
<table border= "1 " cellspacing= "1 " cellpadding= "0 " align= "center ">
<tr>
<td width= "88 "> <b> 姓名: </b> </td>
<td width= "200 ">
<input type= "text " name= "FirstName " >
</td>
</tr>
<tr>
<td> <b> 用户ID: </b> </td>
<td> <input type= "text " name= "UserID " onBlur= "test_id(this.value) "> </td>
</tr>
</table>
<p align= "center ">
<input type= "submit " name= "Submit " value= "注册 " style= "font-size:9pt ">
<input type= "reset " name= "Submit2 " value= "填写 " style= "font-size:9pt ">
</p>
</form>
<SCRIPT LANGUAGE= "JavaScript ">
var userid, oXMLHTTP;
function test_id(suserid)
{
oXMLHTTP = new ActiveXObject( "Microsoft.XMLHTTP ");
userid = suserid;
var sURL = "http://localhost:8085/by/tempb.asp?userid= " + userid;
oXMLHTTP.onreadystatechange = managestatechange;
oXMLHTTP.open( "GET ", sURL, true);
try{
oXMLHTTP.send();
}
catch(e)
{
alert( "此时无法进行验证。 ");
document.form1.FirstName.focus();
}
}
function managestatechange(){
switch(oXMLHTTP.readyState)
{
case 2, 3:
document.all( "show_div ").style.display = "block ";
break;
case 4:
if(oXMLHTTP.responseText == "exists ")
alert( "很抱歉! User ID : " + userid + "已经存在。 ");
document.all( "show_div ").style.display = "none ";
break;
}
}
document.all( "show_div ").style.display = "none ";
</script>
</body>
tempb.asp (本来是调数据库的,但是方便测试,我就换了了这个)
<body>
<%
sUserID = Replace(Trim(Request.QueryString( "userid ")), " ' ", " ")
If sUserID = "aa " Then Response.Write "exists "
%>
</body>
[解决办法]
function checkUsername()
{
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
req = new ActiveXObject( "Microsoft.XMLHTTP ");
}
document.getElementById( "error_msg " ).innerHTML = "正在验证,请稍候......... "; //自行修改
req.onreadystatechange = processChech;
req.open( "post ", "your.asp?id= "+username, true ); //自行修改
req.send();
}
function processChech()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
if (req.responseText== "false ")
{
error_msg.innerHTML = "error "); //自行修改
}
if (req.responseText== "true ")
{
error_msg.innerHTML = "ok! "; //自行修改
}
}
else
{
// 有HTTP问题发生
error_msg.innerHTML = " <span class= 'STYLE12 '> 帐号名认证服务器暂时不可用,请继续注册! </span> ";
}
}
}
[解决办法]
楼主:
1、首先ajax就是利用的xmlHttp,呵呵,所以,可以说你用的就是ajax技术;
2、把你的代码改成以下试试:
var sURL = "http://localhost:8085/by/tempb.asp ";
oXMLHTTP.onreadystatechange = managestatechange;
oXMLHTTP.open( "GET ", sURL, true);
try{
oXMLHTTP.send( "userid= " + userid);
}
catch(e)
{
alert( "此时无法进行验证。 ");
document.form1.FirstName.focus();
}
[解决办法]
在这里说不清,你到下面的地方下再文件直接试下好了
http://forum.devms.com/Post.24858.51450.html
[解决办法]
我参照万网的也写过一个,你可以看下万网的源代码,应该对你有帮助,我就是这么仿过来的
万网注册页
http://www.net.cn/has_client/UserReg/UserReg1.asp
[解决办法]
<html>
<body>
<div id= "show_div " align= "center "> 正在进行验证,请等待…… </div>
<form name= "form1 " method= "post " action= " ">
<table border= "1 " cellspacing= "1 " cellpadding= "0 " align= "center ">
<tr>
<td width= "88 "> <b> 姓名: </b> </td>
<td width= "200 ">
<input type= "text " name= "FirstName " >
</td>
</tr>
<tr>
<td> <b> 用户ID: </b> </td>
<td> <input type= "text " name= "UserID " onBlur= "test_id(this.value) "> </td>
</tr>
</table>
<p align= "center ">
<input type= "submit " name= "Submit " value= "注册 " style= "font-size:9pt ">
<input type= "reset " name= "Submit2 " value= "填写 " style= "font-size:9pt ">
</p>
</form>
<SCRIPT LANGUAGE= "JavaScript ">
var userid, oXMLHTTP;
function test_id(suserid)
{
oXMLHTTP = new ActiveXObject( "Microsoft.XMLHTTP ");
userid = suserid;
var sURL = "temp.asp?userid= " + userid;
oXMLHTTP.onreadystatechange = managestatechange;
oXMLHTTP.open( "GET ", sURL, true);
try{
oXMLHTTP.send();
}
catch(e)
{
alert( "此时无法进行验证。 ");
document.form1.FirstName.focus();
}
}
function managestatechange(){
switch(oXMLHTTP.readyState)
{
case 2, 3:
document.all( "show_div ").style.display = "block ";
break;
case 4:
if(oXMLHTTP.status==200)
{
alert(oXMLHTTP.responseText);
if(oXMLHTTP.responseText == "exists ")
{
alert( "很抱歉! User ID : " + userid + "已经存在。 ");
document.all( "show_div ").style.display = "block ";
}
}
break;
}
}
</script>
</body>
</html>