首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

使用xmlhttp检测表单与数据库是否重复.该如何处理

2012-03-26 
使用xmlhttp检测表单与数据库是否重复.离开文本框,马上检测文本框的数据是否与数据库里面重复,如果重复就

使用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>

热点排行