<!--
function CreateSelect(_FormName,_SName,_SValue,_Ds,_AllOptionStr,ShowType)
{
//三级关链菜单通用版
//作者:海娃, 有问题请到http://www.51windows.Net留言。
if (_FormName=="")
_FormName = "all"
var _DsArr = _Ds.split("|")
var _Ds1,_Ds2,_Ds3
var _Ds1 = _DsArr[0]
var _Ds2 = (_DsArr.length>1)?_DsArr[1]:_DsArr[0]
var _Ds3 = (_DsArr.length>2)?_DsArr[2]:_DsArr[0]
var _SNameArr = _SName.split("|")
var _SName1,_SName2,_SName3
var _SName1 = _SNameArr[0]
var _SName2 = (_SNameArr.length>1)?_SNameArr[1]:_SNameArr[0]
var _SName3 = (_SNameArr.length>2)?_SNameArr[2]:_SNameArr[0]
var _SValueArr = _SValue.split("|")
var _SValue1,_SValue2,_SValue3
var _SValue1 = _SValueArr[0]
var _SValue2 = (_SValueArr.length>1)?_SValueArr[1]:_SValueArr[0]
var _SValue3 = (_SValueArr.length>2)?_SValueArr[2]:_SValueArr[0]
if (ShowType==3){
_AllOptionStr = _AllOptionStr.replace(/\(\(/ig,"\(\("+_Ds3+"\^")
_AllOptionStr = _AllOptionStr.replace(/\{\{/ig,"\{\{"+_Ds2+"\(\("+_Ds3+"\*\*")
}
else if(ShowType==2){
_AllOptionStr = _AllOptionStr.replace(/\{\{/ig,"\{\{"+_Ds2+"\(\("+_Ds3+"\*\*")
}
else if(ShowType==1){
_AllOptionStr = _AllOptionStr.replace(/\(\(/ig,"\(\("+_Ds3+"\^")
}
var AllStr = _Ds1 + "{{"+ _Ds2 + "(("+ _Ds3 +"||"+_AllOptionStr
//alert(AllStr)
var _AR0 = AllStr.split("||")
document.writeln("<select name=\"" + _SName1 + "\" size=\"1\" onChange=\""+_SName1+"redirect(this.options.selectedIndex)\">")
for (var i1 = 0i1 <_AR0.lengthi1++)
{
var Area1Str = _AR0[i1]
var _AR10 = Area1Str.split("{{")
var _AR11 = _AR10[0].split("@")
var Tstr1 = _AR11[0]
var Vstr1 = (_AR11.length==2)?_AR11[1]:_AR11[0]
document.writeln("<option value=\""+Vstr1+"\">"+Tstr1+"<\/option>")
}
document.writeln("<\/select>")
document.writeln("<select name=\"" + _SName2 + "\" size=\"1\" onChange=\""+_SName1+"redirect1(this.options.selectedIndex)\">")
var _AR111 = _Ds2.split("@")
var Tstr11 = _AR111[0]
var Vstr11 = (_AR111.length==2)?_AR111[1]:_AR111[0]
document.writeln("<option value=\""+Vstr11+"\">"+Tstr11+"<\/option>")
document.writeln("<\/select>")
document.writeln("<select name=\"" + _SName3 + "\" size=\"1\">")
var _AR222 = _Ds3.split("@")
var Tstr22 = _AR222[0]
var Vstr22 = (_AR222.length==2)?_AR222[1]:_AR222[0]
document.writeln("<option value=\""+Vstr22+"\">"+Tstr22+"<\/option>")
document.writeln("<\/select>")
document.writeln("<S"+"CRIPT LANGUAGE=\"JavaScript\" defer>")
document.writeln("<!--")
document.writeln("var "+_SName1+"NewAllStr = \""+ AllStr +"\"")
document.writeln("var "+_SName1+"_AR0 = "+_SName1+"NewAllStr.split(\"||\")")
document.writeln("var "+_SName1+"groups=document."+ _FormName +"." + _SName1 + ".options.length")
document.writeln("var "+_SName1+"group=new Array("+_SName1+"groups)")
document.writeln("for (i=0i<"+_SName1+"groupsi++){")
document.writeln(" "+_SName1+"group[i]=new Array()")
document.writeln("}")
document.writeln("for (var i1 = 0i1 <"+_SName1+"_AR0.lengthi1++){")
document.writeln(" var Area1Str = "+_SName1+"_AR0[i1]")
document.writeln(" var _AR10 = Area1Str.split(\"{{\")")
document.writeln(" var _AR12 = _AR10[1].split(\"**\")")
document.writeln(" for (var i2 = 0i2 <_AR12.lengthi2++){")
document.writeln(" var Area2Str = _AR12[i2]")
document.writeln(" var _AR20 = Area2Str.split(\"((\")")
document.writeln(" var _AR211 = _AR20[0].split(\"@\")")
document.writeln(" var Tstr2 = _AR211[0]")
document.writeln(" var Vstr2 = (_AR211.length==2)?_AR211[1]:_AR211[0]")
document.writeln(" "+_SName1+"group[i1][i2]=new Option(Tstr2,Vstr2)")
document.writeln(" }")
document.writeln("}")
document.writeln("var "+_SName1+"temp = document."+ _FormName +"." + _SName2)
document.writeln("function "+_SName1+"redirect(x){")
document.writeln(" for (m="+_SName1+"temp.options.length-1m>0m--)")
document.writeln(" "+_SName1+"temp.options[m]=null")
document.writeln(" for (i=0i<"+_SName1+"group[x].lengthi++){")
document.writeln(" "+_SName1+"temp.options[i]=new Option("+_SName1+"group[x][i].text,"+_SName1+"group[x][i].value)")
document.writeln(" }")
document.writeln(" "+_SName1+"temp.options[0].selected=true")
document.writeln(" "+_SName1+"redirect1(0)")
document.writeln("}")
document.writeln("var "+_SName1+"Group2s=document."+ _FormName +"." + _SName2 + ".options.length")
document.writeln("var "+_SName1+"Group2=new Array("+_SName1+"groups)")
document.writeln("for (i=0i<"+_SName1+"groupsi++){")
document.writeln(" "+_SName1+"Group2[i]=new Array("+_SName1+"group[i].length)")
document.writeln(" for (j=0j<"+_SName1+"group[i].lengthj++){")
document.writeln(" "+_SName1+"Group2[i][j]=new Array()")
document.writeln(" }")
document.writeln("}")
document.writeln("for (var i1 = 0i1 <"+_SName1+"_AR0.lengthi1++){")
document.writeln(" var Area1Str = "+_SName1+"_AR0[i1]")
document.writeln(" var _AR10 = Area1Str.split(\"{{\")")
document.writeln(" var _AR12 = _AR10[1].split(\"**\")")
document.writeln(" for (var i2 = 0i2 <_AR12.lengthi2++){")
document.writeln(" var Area2Str = _AR12[i2]")
document.writeln(" var _AR20 = Area2Str.split(\"((\")")
document.writeln(" _AR212 = _AR20[1].split(\"^\")")
document.writeln(" for (var i3 = 0i3 <_AR212.lengthi3++){")
document.writeln(" Area3Str = _AR212[i3]")
document.writeln(" _AR3 = Area3Str.split(\"@\")")
document.writeln(" Tstr3 = _AR3[0]")
document.writeln(" Vstr3 = (_AR3.length==2)?_AR3[1]:_AR3[0]")
document.writeln(" "+_SName1+"Group2[i1][i2][i3]=new Option(Tstr3,Vstr3)")
document.writeln(" }")
document.writeln(" }")
document.writeln("}")
document.writeln("var "+_SName1+"temp1=document."+ _FormName +"." + _SName3 + "")
document.writeln("function "+_SName1+"redirect1(y){")
document.writeln(" for (m="+_SName1+"temp1.options.length-1m>0m--)")
document.writeln(" "+_SName1+"temp1.options[m]=null")
document.writeln(" for (i=0i<"+_SName1+"Group2[document."+ _FormName +"." + _SName1 + ".options.selectedIndex][y].lengthi++){")
document.writeln(" "+_SName1+"temp1.options[i]=new Option("+_SName1+"Group2[document."+ _FormName +"." + _SName1 + ".options.selectedIndex][y][i].text," + _SName1 + "Group2[document."+ _FormName +"." + _SName1 + ".options.selectedIndex][y][i].value)")
document.writeln(" }")
document.writeln(" "+_SName1+"temp1.options[0].selected=true")
document.writeln("}")
document.writeln("\/\/-->")
document.writeln("<\/script>")
document.writeln("<s"+"cript language=\"JavaScript\">")
document.writeln("<!--")
document.writeln("function "+_SName1+"SetValue(){")
document.writeln(" try{")
document.writeln(" if (\""+_SValue1+"\"!=\"\"){")
document.writeln(" document."+ _FormName +"."+_SName1+".value=\""+_SValue1+"\"")
document.writeln(" "+_SName1+"redirect(document."+ _FormName +"."+_SName1+".options.selectedIndex)")
document.writeln(" if (\""+_SValue2+"\"!=\"\"){")
document.writeln("document."+ _FormName +"."+_SName2+".value=\""+_SValue2+"\"")
document.writeln(""+_SName1+"redirect1(document."+ _FormName +"."+_SName2+".options.selectedIndex)")
document.writeln("if (\""+_SValue3+"\"!=\"\")")
document.writeln(" document."+ _FormName +"."+_SName3+".value=\""+_SValue3+"\"")
document.writeln(" }")
document.writeln(" }")
document.writeln(" }")
document.writeln(" catch(e){")
document.writeln(" }")
document.writeln("}")
document.writeln("window.attachEvent(\"onload\","+_SName1+"SetValue)")
document.writeln("\/\/-->")
document.writeln("<\/script>")
}
//-->
</script>
<%
set conn=Server.CreateObject("ADODB.Connection")
dbpath=Server.MapPath("db1.mdb")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0Jet OLEDB:Database Password=Data Source=" &dbpath
dim SelectStr
SelectStr = ""
dim sql1,sql2,sql3
dim rs1,rs2,rs3
dim i1,i2,i3
'使用缓存,application("liststr"),将添加,编辑或删除一个数据时,用application("liststr") = empty清空缓存
application("liststr") = empty
if isempty(application("liststr")) then
'//一级分类开始
sql1 = "select c1id,c1name from class1"
set rs1 = conn.execute(sql1)
i1 = 0
while not rs1.eof
if i1 >0 then
SelectStr = SelectStr &"||"
end if
SelectStr = SelectStr &rs1("c1name") &"{{"
'显示与值不同时,用下面一行
'SelectStr = SelectStr &rs1("c1name") &"@"&rs1("c1id") &"{{"
'//二级分类开始
sql2 = "select c2id,c2name from class2 where c1name = '"&replace(rs1("c1name"),"'","''") &"'"
set rs2 = conn.execute(sql2)
i2 = 0
while not rs2.eof
if i2 >0 then
SelectStr = SelectStr &"**"
end if
SelectStr = SelectStr &rs2("c2name") &"(("
'显示与值不同时,用下面一行
'SelectStr = SelectStr &rs2("c2name") &"@"&rs2("c2id") &"(("
'//三级分类开始
sql3 = "select c3id,c3name from class3 where c2name = '"&replace(rs2("c2name"),"'","''") &"'"
set rs3 = conn.execute(sql3)
i3 = 0
while not rs3.eof
if i3 >0 then
SelectStr = SelectStr &"^"
end if
SelectStr = SelectStr &rs3("c3name")
'显示与值不同时,用下面一行
'SelectStr = SelectStr &rs3("c3name") &"@" &rs3("c3id")
i3 = i3 + 1
rs3.movenext
wend
rs3.close
set rs3 = nothing
'//三级分类结束
i2 = i2 + 1
rs2.movenext
wend
rs2.close
set rs2 = nothing
'//二级分类结束
i1 = i1 + 1
rs1.movenext
wend
rs1.close
set rs1 = nothing
application("liststr") = SelectStr
end if
'//一级分类结束
%>
<SCRIPT LANGUAGE="JavaScript">
<!--
var AllStr1 = "<% = application("liststr") %>"
//-->
</SCRIPT>
<FORM name="HwForm">
<HR>选择一次<br>
<SCRIPT LANGUAGE="JavaScript">
CreateSelect("","S_13|S_23|S_33","","请选择地区@|请选择省份@|请选择城市@",AllStr1,0)
</SCRIPT>
<HR>选择三次<br>
<SCRIPT LANGUAGE="JavaScript">
CreateSelect("HwForm","S_1|S_2|S_3","华北地区|山东|济宁","请选择地区@|请选择省份@|请选择城市@",AllStr1,3)
</SCRIPT>
</FORM>
可以使用递归方式来取
Sub getmenu(fid)m=m+1
Set rss=server.CreateObject("adodb.recordset")
sql="select id,departmenetName,parrentId,danweiId,idx from menuname where parentId='"&fid&"' order by id asc"
rss.open sql,conn,1,1
if not rss.eof then
do while not rss.eof
c_id=rss("id")
c_name=rss("departmenetName")
if m=1 then '第一级菜单,这里为了突出显示给菜单前加空格和特殊字符,如不需要可不用判断m的值
c_t=""
elseif m=2 then '第二级菜单
c_t="&nbsp&nbsp&brvbar&sdot&sdot"
elseif m=3 then '第三级菜单
c_t="&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&brvbar&sdot&sdot"
elseif m=4 then '第四级菜单
c_t="&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&brvbar&sdot&sdot"
else
c_t=""
end if
response.write("<option value='"&c_id&"'>"&c_t&""&c_name&"</option>")
call getmenu(c_id)
m=m-1
rss.movenext:loop
end if
End Sub
不用m的判断可以显示无限级,每次取出往后空一行,有多少显示多少,测试只是为了在select中突出显示,所以特别判断是哪一级
静态和动态之间的相互调用,无法互通 2.实现方式1,通过动态语言获取出数据,css对其隐藏, *** 作时让CSS设为显示,即可 3.实现方式2,利用js+ajax+动态语言, *** 作比较复杂,但也可以实现
希望可以帮到你 望采纳 谢谢
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)