Asp开发 结合ajax、bootstrap知识要点

颛孙霖
2023-12-01

@
1.asp语言写在<% %>内
2.数据库查询时候, 形如 sql=“select top 1 id from “&tname&” where “&fname&”=’”&regid&"’"
数据表、字段无需引号,但查询的字段条件必须引号
3.ajax 向asp提交数据: ajax.js

//------验证码校验   仅用户名模块完成了修改
	var elementsId;
function get_id2(eid2){//接受跨页面的传值
	elementsId =eid2;
    }

function checkcode(regcode){	
	var xmlhttp;
	try{
		xmlhttp=new XMLHttpRequest();
		}
	catch(e){
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.onreadystatechange=function(){
	if (xmlhttp.readyState==4){
		if (xmlhttp.status==200){
			var data=xmlhttp.responseText;
			code_result(data);
			}
		else{
			$("span")[4].innerHTML="验证码校验失败,请联系管理员";
			}
		}
	else{
		$("span")[4].innerHTML="正在进行验证码校验...";
		}
	}
	xmlhttp.open("post", "check_code.asp", true);
	xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	xmlhttp.send("regcode="+escape(regcode));
}


function code_result(data){
	var resultbox=$("span")[4];
	if(data==1){
		resultbox.innerHTML='<img src="yesok.gif"/> 验证码正确';
		flag[5]=1;
		check_data();
		}
	else{
		resultbox.innerHTML='<img src="yesno.gif"/> 验证码错误';
		flag[5]=0;
		check_data();
		}
}
	
//--------------------------------------------------------------------用户名检测
function checkid(regid,tname,fname){	
	var xmlhttp;
	try{
		xmlhttp=new XMLHttpRequest();
		}
	catch(e){
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.onreadystatechange=function(){
	if (xmlhttp.readyState==4){  //4可以获取服务器响应//200交易成功
		if (xmlhttp.status==200){  
			var data=xmlhttp.responseText;  //接受asp sql查询返回的结果
				//alert(data)	;			 
			id_result(data); //调用函数处理查询返回的结果
			}
		else{
			$(elementsId).innerHTML=" 用户名检测失败,请联系管理员";
			}
		}
	else{
		$(elementsId).innerHTML="正在进行用户名校验...";
		}
		//alert("tname="+tname+"&fname="+fname)
	}
	xmlhttp.open("post", "check_id.asp", true);  //asp数据库查询页面
	xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	xmlhttp.send("regid="+escape(regid)+"&tname="+tname+"&fname="+fname);//多个sql查询参数,表名,字段名,字段条件
	//send 向后台传递参数 escapse为编码汉字的方式
}
function id_result(data){  //对asp sql查询返回的结果处理
	var resultbox=$(elementsId);
	if(data==1){
		resultbox.innerHTML='<img src="yesok.gif"/> 用户名或名称可用';
		flag[4]=1;
		check_data();
		}
	else{
		resultbox.innerHTML='<img src="yesno.gif"/> 该用户名或名称已经存在';
		flag[4]=0;
		check_data();
	}
}

//--------------------------------------------------------------------
function sendinfo(regname,pwd,email){
	var xmlhttp;
	try{
		xmlhttp=new XMLHttpRequest();
		}
	catch(e){
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	xmlhttp.onreadystatechange=function(){
	if (xmlhttp.readyState==4){
		if (xmlhttp.status==200){
			var data=xmlhttp.responseText;
			reg_result(data);
			}
		else{
			$("span")[5].innerHTML="注册失败,请联系管理员";
			}
		}
	else{
		$("span")[5].innerHTML="正在进行用户名注册...";
		}
	}
	xmlhttp.open("post", "reg.asp", true);
	xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	xmlhttp.send("regname="+escape(regname)+"&pwd="+escape(pwd)+"&email="+escape(email));

}
function reg_result(data){
	if(data==1){
		$("span")[5].innerHTML='<a href="http://cceer.xmu.edu.cn/blog/" target="_blank">'+$("input")[0].value+",您好.请点击这里登陆</a>";
		}
	else{
		$("span")[5].innerHTML="注册失败,请联系管理员";
	}
	}

4.上面的ajax.js 配合 detect.js 用于验证用户名密码等,
//得到id 可以多个需要验证重复数据的地方调用,获取节点的id,在html中,只需要设定要验证的input中设定好id,如inputid,span的id为inputid+‘span’,上段js可以自动获取,

	var elementsId
	function getid1(eid){  //维修人查询
		var	eidvalue =document.getElementById(eid).value;//根据传来的id获取输入框的值
			get_id(eid,'bx_wxr', 'wxr')  //查询的表名和字段名作为参数
		
	}
	function getid2(eid){ //普通用户查询
		var	eidvalue =document.getElementById(eid).value;//根据传来的id获取输入框的值
			get_id(eid,'bx_info', 'username')  //查询的表名和字段名作为参数
	}
	
	function getid3(eid){ //设备查询
		var	eidvalue =document.getElementById(eid).value;//根据传来的id获取输入框的值
			get_id(eid,'bx_shebei', 'shebei')  //查询的表名和字段名作为参数
	}		
	
	
	function get_id(eid,tname,fname){  //将onblur传来的数值转为id和span的id
		elementsId = eid+"span"; //为提示span标签指定id设为全局变量
		get_id2(elementsId);//跨页面传值
		$(elementsId);//调用$函数,为提示span标签指定id参数
		eidvalue =document.getElementById(eid).value;//根据传来的id获取输入框的值
		check_id(eidvalue,tname,fname);//check_id向函数传值检查字符合法性
		
	}
	
	var flag=[0,0,0,0,0,0];
	var $=function(eleId){
	//	'return document.getElementsByTagName(tagName);

		return document.getElementById(eleId)
	}
	
	
//----------接受协议
	function accept_info(){
		flag[0]=1;
		check_data();
	}
//----------拒绝协议
	function refuse_info(){
		flag[0]=0;
		check_data();
	}
//----------重置
	function reset_info(){
		var info=["支持汉字,单词,数字,敏感字符屏蔽","密码在6-16位之间,敏感字符屏蔽","","email是联系重要手段","看不清楚?请点击验证码刷新"]
		for(var i=0;i<$("span").length;i++){
			$("span")[i].innerHTML=info[i];
			flag[i]=0;
		}
		for(var i=0;i<$("input").length-3;i++){
			$("input")[i].value="";
		}
		check_data();
	}
//----------邮箱检测
	function check_email(email){
		var reEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
		var b_email=reEmail.test(email);
		if(b_email){
			$("span")[3].innerHTML="<img src='yesok.gif'/> 邮箱可用";
			flag[1]=1;
			check_data();
		}
		else{
			$("span")[3].innerHTML="<img src='yesno.gif'/> 邮箱错误";
			flag[1]=0;
			check_data();
		}
	}
//----------密码检测
	function check_password(obj){
		var pwd=$("input")[1].value;
		var reChinese=/[\u0391-\uFFE5]+/;
		var b_chinese=reChinese.test(pwd);
		var reSpace=/\s+/;
		var b_space=reSpace.test(pwd);
		//-------长度测试
		if(pwd.length<6){
			$("span")[1].innerHTML="<img src='yesno.gif'/> 密码长度不能小于6";
			flag[2]=0;
			check_data();
		}
		//-------合法性检测:不能包含汉字
		else if(b_chinese){
			$("span")[1].innerHTML="<img src='yesno.gif'/> 密码不能包含中文";
			flag[2]=0;
			check_data();
		}
		//-------合法性检测:不能包含空格
		else if(b_space){
			$("span")[1].innerHTML="<img src='yesno.gif'/> 密码不能包含空格";
			flag[2]=0;
			check_data();
		}
		//-------合法时显示密码强度
		else{
			//定义对应的消息提示
			var num=getResult(pwd);
			var msg=new Array("<img src='bad.gif'/> 密码强度差","<img src='comm.gif'/> 密码强度一般","<img src='good.gif'/> 密码强度强壮");
			$("span")[1].innerHTML=msg[num];
			if($("input")[2].value!=""){
				check_pw();
				}
			return flag[2]=1;
			check_data();
			}
		}
		//定义检测函数,返回0/1/2分别代表差/一般/强
		function getResult(s){
			var ls =-1;
			if (s.match(/[a-z]/ig)){
				ls++;
			}
			if (s.match(/[0-9]/ig)){
				ls++;
			}
 			if (s.match(/(.[^a-z0-9])/ig)){
				ls++;
			}
			return ls;
		}
	//---------密码一致性检测	
		function check_pw(){
			var pwd=$("input")[1].value.toString();
			var check_pwd=$("input")[2].value.toString();
			if(flag[2]==1){
				if(pwd==check_pwd){
					$("span")[2].innerHTML="<img src='yesok.gif'/> 密码可以使用";
					flag[3]=1;
					check_data();
				}
				else{
					$("span")[2].innerHTML="<img src='yesno.gif'/> 两次密码不相同";
					flag[3]=0;
					check_data();
				}
			}
		}
	//---------用户名合法性检测
		function check_id(id_name,tname,fname){//只能字母和数字,是否相同用AJAX判断
			var reId=/^[\w\u0391-\uFFE5]+$/;
			var b_id=reId.test(id_name);  //test 内置函数

				if(!b_id){
				$(elementsId).innerHTML="  <img src='yesno.gif'/>用户名或名称非法,应该为字母数字汉字等";
				flag[4]=0;
				check_data();
				
			}
			else{//合法用户名用ajax的checkid()检测是否被注册过
				$(elementsId).innerHTML="字符正确"
				checkid(id_name,tname,fname);
			}
		}
	//---------检查数据,使提交按钮是否生效
		function check_data(){
			//if(flag[0]==1 && flag[1]==1 && flag[2]==1 && flag[3]==1 && flag[4]==1 && flag[5]==1){
			if(flag[4]==1 ){
			//$("addwxrb").disabled=false;
				return true;
			}
			else{
				//alert('请换一个名字')
				//$("addwxrb").disabled=true;
				return false;
				
			}
		}
		
//--------------------------------------------------------------------

5、html表单调用页面:

	<div id="right"  class="col-sm-9 col-md-6 col-lg-8">
			<div id="right_form">
				<div id="right_title"  class="label label-primary">维修人</div>
				<div id="right_comment_bg">
					<div id="right_comment" style="line-height:22px; font-size:14px;">
					  <br />
                      <form name="myform" action="?action=savewxr&id=<%=id%>" method="post" onsubmit="return check_data()">
                      <!---->
					 <table width="100%" border="0" cellspacing="0" cellpadding="0" class="table table-striped  table-bordered" align="left">
					  <tr class="table">
					  <td>
						<div class="input-group">
						  <label for="wxr" class="input-group-addon">维修人:</label>
						  <input name="wxr" class="col-sm-3" type="text" id="editwxr" value="<%=rs("wxr")%>" onblur="getid1(this.getAttribute('id'));"/> <span id="editwxrspan"><font  size="2" color="red">&nbsp支持汉字,单词,数字,敏感字符屏蔽</font></span>
						  <input type="submit" class="col-sm-1" name="button" id="button" value="修改" />
						  <input type="button" class="col-sm-1" name="button2" id="button2" value="返回" onClick="javascript:window.history.back();return false;"  />
						</div>
					  </td>
					  </tr>
					  </table>
                      </form>
					  <br /> <br />
					
				</div>
			</div>	
		</div>
	</div>

6、asp调用ueditor
<%=rs(“shuoming”)%>为数据库中读取数据显示到ueditor的代码,重点是name=“art_content”

<tr><td>
    <script id="myUeditor"  name="art_content"  type="text/plain" align="center" style="width:auto;height:auto;">   <%=rs("shuoming")%></script>
	<script type="text/javascript">    var editor_a = UE.getEditor('myUeditor');</script>
</td></tr>
<tr><td>

下面为asp存入数据库的代码,重点是Request.Form(“art_content”)

<%
End Sub

Sub saveshuoming()
sContent = ""

For i = 1 To Request.Form("art_content").Count

  sContent = sContent & Request.Form("art_content")(i)

Next
Set rs=server.CreateObject("adodb.recordset")
sql="select * from bx_shuoming where id=1"
rs.open sql,conn,1,3
rs("shuoming")=sContent
rs.update
rs.close
set rs=nothing
call errmsg("设置说明成功","?action=shuoming")

End Sub

%> 

7、bootstrap 导航条,兼容ie8
小于ie9,必须用js2.0以下,必须在原的js2.0之下 注意引入的顺序不能错,否则不能正常工作;

<!DOCTYPE html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="author" content="zhy" />


<!-- #include file="Config.Asp" -->
<!-- #include file="Conn.Asp" -->
<!-- #include file="inc/md5.Asp" -->
<title><%=SiteName%></title>

<script src="js/script.js" type="text/javascript" ></script>

 
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
	<script src="js/jquery.min-2.1.1.js"></script>
	<!--[if lt IE 9]>
	<script src="js/jquery-1.12.1.min.js">
	</script><![endif]-->	
	
	<!-- 新 Bootstrap 核心 CSS 文件 -->
	<link href="Css/bootstrap/css/bootstrap.min.css" rel="stylesheet">	
		
	<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
	<script src="Css/bootstrap/js/bootstrap.min.js"></script>

	<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
	<!--[if lt IE 9]>
		<script src="Css/bootstrap/js/ie8-responsive-file-warning.js"></script>
		<script src="Css/bootstrap/js/respond.min.js"></script>		
		<script src="Css/bootstrap/js/html5shiv.js"></script>
	<![endif]-->	

	<script src="js/detect.js" type="text/javascript"></script>
	<script src="js/ajax.js" type="text/javascript"></script>
	<!--ueditor-->
	    <script type="text/javascript" charset="gbk" src="ueditor/ueditor.config.js"></script>
    <script type="text/javascript" charset="gbk" src="ueditor/ueditor.all.min.js"> </script>
    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
    <script type="text/javascript" charset="gbk" src="ueditor/lang/zh-cn/zh-cn.js"></script>
	
</head>

8.导航条自适应,图片背景,

<div id="all" class="row clearfix " align="center">
      <div id="all" class="row "  style="position:relative; width:1198px;">
		<img class="img-responsive  center-block" src="images/logo.png"  style="width:100%;"/>
		<h2 class="page-header" style="position:absolute;top:-20px;left:250px;color:blue">红旗小学设备报修系统</h2>
	</div>

  <div id="banner" class="row " >
			&nbsp;
	<nav class="navbar navbar-inverse " role="navigation" >	
	<div class="container-fluid">
 			<button class="navbar-toggle" data-toggle="collapse" data-target="#menu">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

     <div id="menu" class="collapse navbar-collapse">
			<%
			if session("bx_admin")<>"" then
			%>
		<ul class="nav navbar-nav" style="display: inline-block;float: none;">
			<li><a href="?action=shuoming" target="_self">相关说明</font></a></li>
			<li class="active"><a href="?action=add">报修登记</a></li>
			<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">受理情况<b class="caret"></b></a>

				<ul class="dropdown-menu">
					<li><a href="?action=admin">全部报告</a></li>			
					<li><a href="?action=admin&jindu=1">未受理</a></li>
					<li><a href="?action=admin&jindu=2">处理中</a></li>
					<li><a href="?action=admin&jindu=3">已完成</a></li>
				</ul>
			</li>
		
			<li><a href="?action=adminshebei">设备管理</a></li>
			<li><a href="?action=wxr">维修人管理</a></li>
			<li class="dropdown"><a href="?action=list" class="dropdown-toggle" data-toggle="dropdown">系统管理<b class="caret"></b></a>
				<ul class="dropdown-menu">
					<li><a href="?action=adminpass">更改密码</a></li>

					<li><a href="?action=excel">导出Excel</a></li>
					<li><a href="?action=loginout">退出管理</a></li>
				</ul>
		</ul>

    <%else%>

		<ul class="nav navbar-nav" style="display: inline-block;float: none;">
			<li><a href="?action=shuoming" target="_self">相关说明</font></a></li>
			<li class="active" ><a href="?action=add">报修登记</a></li>
				<li lass="dropdown"><a href="?action=list" class="dropdown-toggle" data-toggle="dropdown">受理情况<b class="caret"></b></a>
					<ul class="dropdown-menu">
						<li><a href="?action=list">全部报告</a></li>			
						<li><a href="?action=search&jindu=1">未受理</a></li>
						<li><a href="?action=search&jindu=2">处理中</a></li>
						<li><a href="?action=search&jindu=3">已完成</a></li>
					</ul>
				</li>
			<li><a href="?action=login">系统管理</a></li>
		</ul>

    <%end if%>
	</div>
	</div>
	</nav>
</div>
</div>

9.asp Excel.Application组件组件导出 excel
不能创建对象 Set Fs=Server.CreateObject(“Scripting.FileSystemObject8”)----这个8就是,你可以慢慢的测试了
应该是FSO给关闭了,但运行 regsvr32 scrrun.dll 然后重启一下 IIS 的服务

Excel.Application组件
10.操作数据库
1)增加数据
sub saveaddwxr()
call chkadmin()
wxr1=request.Form(“wxr”)
if wxr1="" then
call errmsg(“名称不能空!”,"?action=addwxr")
else
set rs=server.CreateObject(“adodb.recordset”)
sql=“select * from bx_wxr”
rs.open sql,conn,1,3
rs.addnew
rs(“wxr”)=wxr1
rs.update
rs.close
set rs=nothing
call errmsg(“添加成功!”,"?action=wxr")
end if
End sub

2)更改单条信息
sub savewxr()
call chkadmin()
id=cint(request.QueryString(“id”))
wxr1=trim(request.Form(“wxr”))
if wxr1="" then
call errmsg(“名称不能空!”,"?action=editwxr&id="&id)
else
conn.execute(“update bx_wxr set wxr=’”&wxr1&"’ where id="&id)
call errmsg(“更新成功!”,"?action=wxr")
end if
end sub

 类似资料: