手机
当前位置:查字典教程网 >编程开发 >ASP教程 >一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)
摘要:一个强健实用的ajax二级联动菜单(有演示和附源程序打包下载)前些天在搞后台的时候要用到二级联动的菜单,到网上去找了半天也没找到满意的,不是...

一个强健 实用的ajax二级联动菜单(有演示和附源程序打包下载)

前些天在搞后台的时候要用到二级联动的菜单,到网上去找了半天也没找到满意的,不是这错就是那错,在选择的时候有时候不能返回.真是郁闷.

后来就看到有人用ajax写了无限级分类(牛,呵呵,本人看不懂.).就想到我那个后台不也可以用ajax试试,虽然比用javascript的慢点,但我这个实用.强健..不会出错,也不会选择某个大类后再返回无选择状态小类为空的状态.呵呵.

文件目录:如图

一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)1

主要代码如下:

index.asp

复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"c/>

<title>Ajax的二级联动by啊峰</title>

<scriptlanguage="javascript"src="js.js"></script>

</head>

<body>

<h2><ahref="http://yeahdown.com/">Ajax的二级联动by啊峰</a></h2>

<>

<%

Setafeng=Conn.Execute("selectbigclassid,bigclassnamefrombigclass")

%>

<formid="form1"name="form1"method="post"action="">

<divid="bigclass"style="float:left">

<selectname="select">

<optionvalue="0">选择一级分类</option>

<%IfNotafeng.Eofthen

DoWhileNotafeng.Eof

bigclassid=afeng("bigclassid")

bigclassname=afeng("bigclassname")%>

<optionvalue="<%=bigclassid%>"><%=bigclassname%></option>

<%afeng.Movenext

Loop

EndIf

afeng.Close

Setafeng=Nothing

Conn.Close

SetConn=Nothing%>

</select>

</div>

<divid="subclass"style="float:left"><selectname="select2">

<optionvalue="0">选择二级分类</option>

</select>

</div>

</form>

</body>

</html>

getsubcategory.asp文件:

复制代码 代码如下:

<%

Response.Charset="GB2312"'设置字符集原默认为utf-8

bigclassid=safe(request.QueryString("bigclassid"))'非法字符过滤

Ifbigclassid<>""Then

SetRe=NewRegExp

Re.IgnoreCase=true

Re.Global=false

Re.Pattern="^[0-9]{1,3}$"

IfNotRe.Test(bigclassid)Then

Response.Write"非法参数"

Response.End

EndIf%>

<>

<%OnerrorResumeNext

setp=conn.execute("select*fromsmallclasswherebigclassid="&bigclassid&"")

IfErrThen

Err.Clear

Response.Write"查询出错"

Response.End

EndIf

IfNotp.EofThen

html="<selectname='smallclassid'>"&vbnewline

DoWhileNotp.Eof

html=html&"<optionvalue='"&p("smallclassid")&"'>"&p("smallclassname")&"</option>"&vbnewline

p.Movenext

Loop

html=html&"</select>"

Else

html="<selectname='smallclassid'><optionvalue='0'selected>暂无小类</option></select>"

EndIf

p.Close

Setp=Nothing

Conn.Close

SetConn=Nothing

Response.writehtml

html=""

EndIf

%>

iconn.asp文件:

复制代码 代码如下:

<%

Setconn=server.CreateObject("adodb.connection")

db="$#yeahdown.com@$$$@@%%.asp"

C&Server.MapPath(db)

OnErrorResumeNext

conn.openConnStr

IfErrThen

Err.Clear

Response.Write"<divid=""error"">连接数据库出错</div>"

Response.End

EndIf

Functionsafe(Str)

IfIsnull(Str)Then

safe=""

ExitFunction

EndIf

Str=Replace(Str,Chr(0),"",1,-1,1)

Str=Replace(Str,"""",""",1,-1,1)

Str=Replace(Str,"<","<",1,-1,1)

Str=Replace(Str,">",">",1,-1,1)

Str=Replace(Str,"script","script",1,-1,0)

Str=Replace(Str,"SCRIPT","SCRIPT",1,-1,0)

Str=Replace(Str,"Script","Script",1,-1,0)

Str=Replace(Str,"script","Script",1,-1,1)

Str=Replace(Str,"object","object",1,-1,0)

Str=Replace(Str,"OBJECT","OBJECT",1,-1,0)

Str=Replace(Str,"Object","Object",1,-1,0)

Str=Replace(Str,"object","Object",1,-1,1)

Str=Replace(Str,"applet","applet",1,-1,0)

Str=Replace(Str,"APPLET","APPLET",1,-1,0)

Str=Replace(Str,"Applet","Applet",1,-1,0)

Str=Replace(Str,"applet","Applet",1,-1,1)

Str=Replace(Str,"[","[")

Str=Replace(Str,"]","]")

Str=Replace(Str,"""","",1,-1,1)

Str=Replace(Str,"=","=",1,-1,1)

Str=Replace(Str,"'","''",1,-1,1)

Str=Replace(Str,"select","select",1,-1,1)

Str=Replace(Str,"execute","execute",1,-1,1)

Str=Replace(Str,"exec","exec",1,-1,1)

Str=Replace(Str,"join","join",1,-1,1)

Str=Replace(Str,"union","union",1,-1,1)

Str=Replace(Str,"where","where",1,-1,1)

Str=Replace(Str,"insert","insert",1,-1,1)

Str=Replace(Str,"delete","delete",1,-1,1)

Str=Replace(Str,"update","update",1,-1,1)

Str=Replace(Str,"like","like",1,-1,1)

Str=Replace(Str,"drop","drop",1,-1,1)

Str=Replace(Str,"create","create",1,-1,1)

Str=Replace(Str,"rename","rename",1,-1,1)

Str=Replace(Str,"count","count",1,-1,1)

Str=Replace(Str,"chr","chr",1,-1,1)

Str=Replace(Str,"mid","mid",1,-1,1)

Str=Replace(Str,"truncate","truncate",1,-1,1)

Str=Replace(Str,"nchar","nchar",1,-1,1)

Str=Replace(Str,"char","char",1,-1,1)

Str=Replace(Str,"alter","alter",1,-1,1)

Str=Replace(Str,"cast","cast",1,-1,1)

Str=Replace(Str,"exists","exists",1,-1,1)

Str=Replace(Str,Chr(13),"<br>",1,-1,1)

safe=Replace(Str,"'","''",1,-1,1)

EndFunction

%>

最后一个js.js

复制代码 代码如下:

functioncreatexmlhttp()

{

xmlhttpobj=false;

try{//创建对象,一个一个的试,哎,要是能统一标准都好。。

xmlhttpobj=newXMLHttpRequest;

}catch(e){

try{

xmlhttpobj=newActiveXObject("MSXML2.XMLHTTP");

}catch(e2){

try{

xmlhttpobj=newActiveXObject("Microsoft.XMLHTTP");

}catch(e3){

xmlhttpobj=false;

}

}

}

returnxmlhttpobj;

}

functiongetsubcategory(bigclassid){

if(bigclassid==0){

document.getElementById("subclass").innerHTML="<selectname='smallclassid'><optionvalue='0'selected>选择二级分类</option></select>";

return;

};

varxmlhttpobj=createxmlhttp();

if(xmlhttpobj){//如果创建对象xmlhttpobj成功

xmlhttpobj.open('get',"getsubcategory.asp?bigclassid="+bigclassid+"&number="+Math.random(),true);//get方法加个随机数。

xmlhttpobj.send(null);

xmlhttpobj.onreadystatechange=function(){//客户端监控函数

if(xmlhttpobj.readystate==4){//服务器处理请求完成

if(xmlhttpobj.status==200){

//alert('ok');

varhtml=xmlhttpobj.responseText;//获得返回值

document.getElementById("subclass").innerHTML=html;

}else{

document.getElementById("subclass").innerHTML="对不起,您请求的页面有问题...";

}

}else{

document.getElementById("subclass").innerHTML="加载中,请梢候...";//服务器处理中

}

}

}

}

打包文件下载

【一个强健 实用的asp+ajax二级联动菜单(有演示和附源程序打包下载)】相关文章:

一个查ASP木马的小东东

pjblog中清空引用的小程序

让ASP搭配MYSQL

ASP常用函数:CheckBoxScript()

用javascript编写asp应用--第一课--通览

ASP上传图片功能的又一实现(OLE对象)

aspx 页面与ascx用户控件传值的问题

iis7、iis8配置备份还原教程

PJBLOG使用技巧

动态网页怎么制作呢?

精品推荐
分类导航