首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP编程

[分享]ASP+ajax完美实现用户表单检测和注册

来源: 互联网    日期:2011-8-28
 

Tc711Com提示:今天给大家 介绍  ASP+ajax完美实现用户表单检测和注册, 此代码经调试完整可用,遇到相关问题可以到论坛发贴: http://bbs.tc711.com/ .

先说JS代码
<script language="javascript" type="text/javascript">
<!--
var msg ;
var li_ok='images/li_ok.gif'; //用于显示正确的图标
var li_err='images/li_err.gif' //用于显示错误时的图标
var bname_m=false;
msg=new Array(
"请输入4-20位字符,英文、数字的组合。",
"请输入6位以上字符,不允许空格。",
"请重复输入上面的密码。",
"请输入您的真实姓名",
"请输入电话号码",
"请输入电子邮箱",
"请输入左边的验证码",
"您必须同意注册条款"
)
//定义一个消息数组,用于显示提示信息
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();
}
//建立xmlhttp实现浏览器的兼容
function show(){
if (document.getElementById("country").value=="China"){
document.getElementById("probince").style.display=""
}else
{
document.getElementById("probince").style.display="none"
}
}
//显示隐藏的国家信息对应的地区信息
function GetCookie(sName)
{
// cookies are separated by semicolons
var aCookie = document.cookie.split("; ");
for (var i=0; i < aCookie.length; i++)
{
// a name/value pair (a crumb) is separated by an equal sign
var aCrumb = aCookie.split("=");
if (sName == aCrumb[0])
return unescape(aCrumb[1]);
}
// a cookie with the requested name does not exist
return null;
}
//用JS读取cookies
function on_input(objname){
var strtxt;
var obj=document.getElementById(objname);
//obj.className="d_on";
//alert(objname);
switch (objname){
case "d_username":
strtxt=msg[0];
break;
case "d_pass":
strtxt=msg[1];
break;
case "d_pass2":
strtxt=msg[2];
break;
case "d_truename":
strtxt=msg[3];
break;
case "d_phone":
strtxt=msg[4];
break;
case "d_email":
strtxt=msg[5];
break;
case "d_code":
strtxt=msg[6];
break;
}
obj.innerHTML=strtxt;
}
//做鼠标放文框时的提示信息
function callServer() {
var u_name = document.getElementById("user_name").value;
if ((u_name == null) || (u_name == "")||(u_name.length<4)||(u_name.length>20)) {
d_username.className="d_err";
d_username.innerHTML=msg[0];
chk=false
return chk;};
xmlHttp.open("POST", "user/checkuser.asp", true);
xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send("username="+escape(u_name));
}
function updatePage() {
if (xmlHttp.readyState < 4) {
d_username.innerHTML="loading...";
}
if (xmlHttp.readyState == 4 && 200==xmlHttp.status) {
var response = xmlHttp.responseText;
if (response==1)
{
d_username.className="d_ok";
d_username.innerHTML='恭喜用户名可以使用。';
}
else{
d_username.className="d_err";
d_username.innerHTML="用户名已占用,请重新注册";
}
}
}
//检测用户名是否可用
function out_pass(){
var obj=document.getElementById("d_pass");
var str=document.getElementById("password").value;
var chk=true;
if (str=='' || str.length<6 || str.length>18){chk=false;}
if (chk){
obj.className="d_ok";
obj.innerHTML='密码已经输入。';
}else{
obj.className="d_err";
obj.innerHTML=msg[1];
}
return chk;
}
//检查密码是否输入
function out_pass2(){
var obj=document.getElementById("d_pass2");
var str=document.getElementById("password2").value;
var chk=true;
if (str=='' || str!=document.getElementById("password").value){chk=false;}
if (chk){
obj.className="d_ok";
obj.innerHTML='重复密码输入正确。';
}else{
obj.className="d_err";
obj.innerHTML=msg[2];
}
return chk;
}
//检查密码确认
function out_truename(){
var obj=document.getElementById("d_truename");
var str=document.getElementById("truename").value;
var chk=true;
if (str=='' || str.length<4){chk=false;}
if (chk){
obj.className="d_ok";
obj.innerHTML="姓名已输入";
}else{
obj.className="d_err";
obj.innerHTML=msg[3];
}
return chk;
}
//检查真实姓名
function out_phone(){
var obj=document.getElementById("d_phone");
var str=document.getElementById("phone3").value;
var chk=true;
if (str=='' || !str.match(/^\d{7,8}$/ig)){chk=false;}
if (chk){
document.getElementById("tr_phone").style.disply="";
obj.className="d_ok";
obj.innerHTML="电话号码已输入";
}else{
document.getElementById("tr_phone").style.disply="";
obj.className="d_err";
obj.innerHTML=msg[4];
}
return chk;
}
//检查真实姓名
function out_email(){
var obj=document.getElementById("d_email");
var str=document.getElementById("email").value;
var chk=true;
if (str==''|| !str.match(/^[\w\.\-]+@([\w\-]+\.)+[a-z]{2,4}$/ig)){chk=false}
if (chk){
obj.className="d_ok";
obj.innerHTML='电子邮箱地址已经输入。';
}else{
obj.className="d_err";
obj.innerHTML=msg[5];
}
return chk;
}
//检查email
function out_code(){
var obj=document.getElementById("d_code");
var str=document.getElementById("code").value;
var chk=true;
if (str==''|| str!=GetCookie("verifycode")){chk=false}
if (chk){
obj.className="d_ok";
obj.innerHTML='验证码已输入';
}else{
obj.className="d_err";
obj.innerHTML=msg[6];
}
return chk;
}
//检查验证码
function out_reg(){
var obj=document.getElementById("d_regtxt");
var chk=true;
if (!document.getElementById("regtxt").checked){chk=false}
if (chk){
obj.className="d_ok";
obj.innerHTML="您已同意注册条款";
}else{
obj.className="d_err";
obj.innerHTML=msg[7];
}
return chk;
}
//检查是否同意了注册条款
function chk_reg(){
var chk=true
if (document.getElementById("user_name").value==''){
chk=false;
d_username.className="d_err";
d_username.innerHTML=msg[0];
}
if (!out_reg()){chk=false}
if (!out_pass()){chk=false}
if (!out_pass2()){chk=false}
if (!out_truename()){chk=false}
if (!out_phone()){chk=false}
if (!out_email()){chk=false}
if(!out_code()){chk=false}
if(chk){
document.getElementById('save_stat').innerHTML='<img src="images/loading.gif" align="absmiddle" />数据提交中……请稍候……'
document.getElementById('regbutton').disabled='disabled';
var username=document.getElementById("user_name").value;
var password=document.getElementById("password").value;
var truename=document.getElementById("truename").value;
if(document.regform.sex[0].checked)
{
var sex=1;
}
else
{
var sex=0;
}
var phone=document.getElementById("phone1").value+document.getElementById("phone2").value+document.getElementById("phone3").value;
var fax=document.getElementById("fax1").value+document.getElementById("fax2").value+document.getElementById("fax3").value;
var email=document.getElementById("email").value;
var mobile=document.getElementById("mobile").value;
var address=document.getElementById("street").value+","+document.getElementById("city").value+","+document.getElementById("country").value;
var probince=document.getElementById("vprobince").value;
var zip=document.getElementById("zip").value;
xmlHttp.open("POST", "user/saveuser.asp", true);
xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = saveuser;
xmlHttp.send("username="+escape(username)+"&password="+escape(password)+"&email="+escape(email)+"&truename="+escape(truename)+"&sex="+escape(sex)+"&phone="+escape(phone)+"&fax="+escape(fax)+"&mobile="+escape(mobile)+"&address="+escape(address)+"&probince="+escape(probince)+"&zip="+escape(zip));
}
}
function saveuser() {
if (xmlHttp.readyState < 4) {
d_username.innerHTML="loading...";
}
if (4==xmlHttp.readyState){
if (200==xmlHttp.status){
var date=xmlHttp.responseText;
if (date==1){
alert("用户注册成功!");
//window.location.href='\/exhibit';
window.location.href="/";
}else{
alert("注册发生错误!");
window.location.href="breg.asp";
}
}else{
alert("error");
}
}
}
//当点击注册按钮后所进行的检测,如果所有必填项都写了则发送注册信息到user/saveuser.asp进行用户的注册
-->
</script>

下面是页面布局的代码

本帖隐藏的内容需要回复才可以浏览

<table width="80%" align="center" cellpadding="4" cellspacing="0"
class="toptable">
<form id="regform" name="regform" method="post"
action="breg.asp">
<tr>
<td height="35" colspan="3"
align="center"
class="blod12">请认真、仔细地填写以下信息,严肃的商业信息有助于您获得别人的信任,结交潜在的商业伙伴,获取商业机会!</td>

</tr>
<tr>
<td width="25%" height="30" align="right"
class="blod12"><font color="#FF0000">*</font> User Name:
</td>
<td width="37%" align="left" ><input name="user_name"
type="text" class="input" id="user_name" size="30"/></td>
<td
width="38%" align="left" id="d_username"> </td>
</tr>

<tr>
<td height="30" align="right" class="blod12"><font
color="#FF0000">*</font> Pssword:</td>
<td
align="left"><input name="password" type="password" class="input"
id="password" size="30" /></td>
<td align="left" id="d_pass">
</td>
</tr>
<tr>
<td height="30" align="right"
class="blod12"><font color="#FF0000">*</font> Confirm password:
</td>
<td align="left"><input name="password2"
type="password" class="input" id="password2" size="30"/></td>

<td align="left" id="d_pass2"> </td>
</tr>

<tr>
<td height="30" align="right" class="blod12"><font
color="#FF0000">*</font> Name:</td>
<td align="left"
class="blod16"><input name="truename" type="text" class="input"
id="truename" size="30"/></td>
<td align="left"
id="d_truename"> </td>
</tr>
<tr>
<td
align="right" class="blod12"><font color="#FF0000">*</font>
Sex:</td>
<td align="left"><input type="radio" name="sex"
value="1" />
Male
<input type="radio" name="sex" value="0" />

Female</td>
<td align="left" id="d_sex"> </td>

</tr>
<tr>
<td height="40" align="right"
class="blod12"><font color="#FF0000">*</font> Phone Number:
</td>
<td colspan="2" align="left" ><table width="68%"
cellspacing="0" cellpadding="0">
<tr>
<td>Country/Region
code</td>
<td>Area code(if any) </td>

<td>Number</td>
</tr>
<tr>

<td><input name="phone1" type="text" class="input" id="phone1"
value="86" size="15" maxlength="4" /></td>
<td><input
name="phone2" type="text" class="input" id="phone2" size="15" /></td>

<td><input name="phone3" type="text" class="input" id="phone3"
size="15"/></td>
</tr>
<tr style="disply:none"
id="tr_phone">
<td colspan="3" id="d_phone"> </td>

</tr>
</table></td>
</tr>
<tr>

<td align="right"><span class="blod12">Fax Number:
</span></td>
<td colspan="2" align="left"><table
width="68%" cellspacing="0" cellpadding="0">
<tr>

<td>Country/Region code</td>
<td>Area code(if any)
</td>
<td>Number</td>
</tr>
<tr>

<td><input name="fax1" type="text" class="input" id="fax1"
value="86" size="15" /></td>
<td><input name="fax2"
type="text" class="input" id="fax2" size="15" /></td>

<td><input name="fax3" type="text" class="input" id="fax3"
size="15" /></td>
</tr>
</table></td>

</tr>
<tr>
<td align="right"
class="blod12">Mobile:</td>
<td align="left"><input
name="mobile" type="text" class="input" id="mobile" size="30" /></td>

<td align="left"> </td>
</tr>
<tr>

<td align="right" class="blod12"><font
color="#FF0000">*</font> Email:</td>
<td
align="left"><input name="email" type="text" class="input" id="email"
size="30"/></td>
<td align="left" id="d_email"> </td>

</tr>
<tr>
<td align="right"
class="blod12">Contace Address:</td>
<td colspan="2"
align="left"><table width="90%" cellspacing="0" cellpadding="0">

<tr>
<td width="21%" align="left">Street Address</td>

<td width="79%" height="25"><input name="street" type="text"
class="input" id="street" size="30" /></td>
</tr>

<tr>
<td align="left">city</td>
<td
height="25"><input name="city" type="text" class="input" id="city"
size="30" /></td>
</tr>
<tr>
<td
align="left">Country/Region</td>
<td height="25"><select
name="country" id="country" class="" tabindex="7">

................................
<option value="Chad"
>Chad</option>
<option value="Chile" >Chile</option>

<option value="China" >China</option>
<option
value="Christmas Island" >Christmas Island</option>
<option
value="Cocos (Keeling) Islands" >Cocos (Keeling) Islands</option>

...............
<option value="Zimbabwe"
>Zimbabwe</option></select></td>
</tr>
<tr
style="display:none" id="Probince">
<td
align="left">Probince/State</td>
<td height="25"><select
name="vprobince" id="vprobince">
<option value="华北地区"
selected="selected">华北地区</option>
<option
value="华东地区">华东地区</option>
<option
value="华南地区">华南地区</option>
<option
value="华中地区">华中地区</option>
<option
value="东北地区">东北地区</option>
<option
value="西北地区">西北地区</option>
<option
value="西南地区">西南地区</option>
<option
value="港澳台地区">港澳台地区</option>
</select></td>

</tr>
</table></td>
</tr>
<tr>

<td align="right" class="blod12">Zip/Postal Code:</td>

<td colspan="2" align="left"><input name="zip" type="text"
class="input" id="zip" size="30" /></td>
</tr>
<tr>

<td align="right"><span class="blod12"><font
color="#FF0000">*</font> Enter the code shown:</span></td>

<td align="left"><input name="code" type="text" class="input"
id="code" size="15"/>
<b><font
color="#ff0000"><%=request.cookies("verifycode")%></font></b></td>

<td align="left" id="d_code"> </td>
</tr>

<tr>
<td align="right"> </td>
<td colspan="2"
align="left"><p>
<input name="regtxt" type="checkbox"
id="regtxt" value="checkbox"/>
I agree to the following<br />

·I accept thewww.duku123.comTerms of Use Agreement<br />
·I may
receive occasional emails relevant towww.duku123.commembership and
services</p>
<div id="d_regtxt"></div> </td>

</tr>
<tr>
<td colspan="3"
align="center"><table width="94%" cellspacing="0" cellpadding="0">

<tr>
<td height="35" align="center"
bgcolor="EFF4FA"><input name="regbutton" type="button" id="regbutton"
value=" Submit"/>
<div id="save_stat"></div></td>

</tr>
</table></td>
</tr>
<tr>

<td height="10" align="center"></td>
<td colspan="2"
align="center"></td>
</tr></form>
</table>


下面是生成随机验证码的代码
<%
Randomize
Do While Len(rndnum)<4

num1=CStr(Chr((57-48)*rnd+48))
rndnum=rndnum&num1
Loop

response.cookies("verifycode")=rndnum
%>
这段应该不用我解释了.只是生成四个随机数字

最后是saveuser.asp的核心代码

]<!-- #include file="../web_conn.asp" -->
<%

Response.ContentType = "text/html"
Response.Charset = "utf-8"

'因为我做的是国际版,所以用的是utf-8编码,以防止出现乱码
username=trim(request("username"))

...................
省略N行,这只是接受传过来的注册参数
set
jrs=server.CreateObject("adodb.recordset")
jsql="select username,id from
表名 where username='"&username&"'"
jrs.open jsql,conn,1,1
if
jrs.eof and jrs.bof then
set rs=server.CreateObject("adodb.recordset")

sql="select * from 表名 where id is null"
rs.open sql,conn,1,3

rs.addnew
.........
省略只是做字段的写入操作
rs.update

Session("username")=username '写session

response.Cookies("username")=username '写cookies
rs.close
set
rs=nothing
response.write "1"
'如果注册成功返回1,在前面的js代码里进行接收,如果收到1则跳出对话框注册成功

else
response.write "0"
'发生错误,即注册失败返回0
end if
jrs.close

set jrs=nothing
response.Cookies("verifycode")=""
'清除验证码以防止表单的重复提交

%>

差点忘了用户检测页面的代码了checkuser.asp
<!-- #include file="../inc/web_conn.asp"
-->
<%
Response.ContentType = "text/html"
Response.Charset =
"utf-8"
username=trim(request("username"))
set
rs=server.createobject("adodb.recordset")
sql="select username,id from 表名
where username='"&username&"'"
rs.open sql,conn,1,1
if rs.bof
and rs.eof then
response.write "1"
else
response.write "0"
end
if
rs.close
set rs=nothing
%>

经过上面的解释这段应该已经很明白了.就不写注释了.如此一来就实现了如今流行的ajax表单检测和提交

遇到相关问题可以到论坛发贴: http://bbs.tc711.com/ .




更多的[分享]ASP+ajax完美实现用户表单检测和注册请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2011-8-28   

发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报