◆◆◆◆100分求助◆◆◆◆这种效果网上很少见到的啊,大家有没有类似的例子呢?

hahaheiheiheihei 2005-06-03 08:28:48
三级关联下拉菜单,我手上有两级下拉关联菜单,就是类似产品分类的那种,类别都是调用数据库里的。现在想找个三级关联菜单,不知哪位有类似的例子?我在网上搜索了好多都没有合适的,大多都是js做的静态的。
谢谢大家
...全文
240 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
asd119cn 2005-06-04
  • 打赏
  • 举报
回复
http://rumor.17560.net/dispbbs.asp?boardID=2&ID=1&page=1

风声的无限级下拉菜单,效果不错。不过没用过,基本用不上这么多的。
超级大笨狼 2005-06-04
  • 打赏
  • 举报
回复
http://superdullwolf.cnzone.net

三级联动
Swanzy 2005-06-03
  • 打赏
  • 举报
回复
不错不错,看看先。
孟子E章 2005-06-03
  • 打赏
  • 举报
回复
注意asp文件名字为
MultiSelect.asp
孟子E章 2005-06-03
  • 打赏
  • 举报
回复
http://sz.luohuedu.net/xml/Exam/MultiSelect.asp

代码:

<%@ Language=VBScript %>
<%
'************************************************************************************************************
'
' 单一文件版本Select下拉联动的数据库版本的实现
'
'
'************************************************************************************************************

%>
<html>
<title>联动下拉列表事例</title>
<body>
<script language = "JavaScript">
<!--
//第一个select的onchange事件函数

function RefreshSelect(o,n)
{ if(n==2) document.mxh.elements["s"+(n+1)].innerHTML=""
if(o.options[o.selectedIndex].value=="0")
document.mxh.elements["s"+n].innerHTML=""
else
{
document.mxh.btn.disabled = false
window.frames['hiddenFrame'].location.href = 'MultiSelect.asp?pid=' + o.options[o.selectedIndex].value+"&n="+n
}
}

function getSelected()
{
for(i=1;i<4;i++)
{
if(document.mxh.elements["s"+i].selectedIndex >-1)
alert("您选择了:" + document.mxh.elements["s"+i].options[document.mxh.elements["s"+i].selectedIndex].value + " - " + document.mxh.elements["s"+i].options[document.mxh.elements["s"+i].selectedIndex].text)
}
}
//-->
</script>
<form name=mxh>
<input value="页面的其它内容不会改变。" style="width:90%"><br>
<select name="s1" onchange = "RefreshSelect(this,2)"><option value="0">--请选择--</select>
<select name="s2" onchange = "RefreshSelect(this,3)"><option value="0">--请选择--</select>
<select name="s3"></select>
<input type="button" name='btn' disabled = true value = "查看选择" onclick="getSelected()">
</form>
<iframe name="hiddenFrame" style="display:none"></iframe>
</body>
<%

'本程序分2部分,一个用来进行提交生成新数据的,一个用来初始化的,
'其实,这样对于理解并不是很有利,暂且这样实现,希望您能看的明白哦,放在两个文件里比较好理解啊

'1,初始化部分开始,主要工作:
'a,初始化第一个下拉列表

Dim sql,rs,cn,i
i = 0
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("MultiSelect.mdb")
If Request.QueryString("pid") = "" Then
'初始化部分
Set rs = cn.Execute("SELECT * FROM Area Where pid=0")
Response.Write "<script language = 'JavaScript'>" & vbCrLf
Response.Write "var arr1 = new Array()" & vbCrLf
Response.Write "var arr2 = new Array()" & vbCrLf

While Not rs.EOF
Response.Write "arr1[" & i & "] = '" & rs("id") & "'" & vbCrLf
Response.Write "arr2[" & i & "] = '" & rs("Name") & "'" & vbCrLf
i = i +1
rs.MoveNext
Wend
'为安全起见
Response.Write "window.onload = new function() {" & vbCrLf
Response.Write "select1 = document.mxh.s1" & vbCrLf
Response.Write "for(i = 1;i<arr1.length + 1;i++)" & vbCrLf
Response.Write "select1.options[i] = new Option(arr2[i-1],arr1[i-1])" & vbCrLf
Response.Write "}" & vbCrLf
Response.Write "</script>" & vbCrLf
Else
'处理数据的提交
strTreeId = Request.QueryString("pid")
If strTreeId = "" Then strTreeId = 0
If IsNumeric(strTreeId) = False Then strTreeId = 0
Response.Clear
Response.Write "<script language = 'JavaScript'>" & vbCrLf
Response.Write "select" & Request.QueryString("n") & " = window.parent.document.mxh.s" & Request.QueryString("n") & vbCrLf
Response.Write "select" & Request.QueryString("n") & ".innerHTML = ''" & vbCrLf
Response.Write "select" & Request.QueryString("n") & ".options[0] = new Option(""--请选择--"",""0"")" & vbCrLf
Set rs = cn.Execute("SELECT * FROM Area Where pid = " & Request.QueryString("pid"))
While Not rs.EOF
Response.Write "select" & Request.QueryString("n") & ".options[select" & Request.QueryString("n") & ".length] = new Option('" & Trim(rs("Name")) & "','" & rs("id") & "')" & vbCrLf
rs.MoveNext
Wend
Response.Write "</script>" & vbCrLf
End If
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>



数据库
http://sz.luohuedu.net/xml/Exam/MultiSelect.mdb
asp1111 2005-06-03
  • 打赏
  • 举报
回复
100MB asp和 asp.net空间 50/1年
我看到了一个网站 100MB asp和 asp.net空间 现在促销,
同学们可以做一个简单的个人网站用来找工作 ,
支持 asp.net 一年才50元!不要错过哦!!!
速度非常快,一般公司企业 足够用了!
http://www.hi876.com
希望能对大家有帮助
hahaheiheiheihei 2005-06-03
  • 打赏
  • 举报
回复
没有反应阿 好象
不知道是我建立表的字段的问题还是程序的问题,那位老兄能把三个表结构给我列一下吗?谢谢啊
hahaheiheiheihei 2005-06-03
  • 打赏
  • 举报
回复
我先建个表测试一下,如果ok的话,就马上结贴咯-_-!
其他还有没有?
cncca 2005-06-03
  • 打赏
  • 举报
回复
<%set rs1=server.createobject("adodb.recordset")
sql1="select * from class1"
rs1.open sql1,conn,1,1
if rs1.eof then
topstr="没有分类"
else
%>
<script language = "javascript">
<!--
<%
topstr="<option>选择一级分类</option>"
do while not rs1.eof
topstr=topstr&"<option value='"&rs1("class1id")&"'>"&rs1("class1name")&"</option>"
%>
<%set rs2=server.createobject("adodb.recordset")
sql2="select * from class2 where class1id="&rs1("class1id")
rs2.open sql2,conn,1,1
if not rs2.eof then

%>
str<%=rs1("class1id")%>='<select name=class2id onChange="change3(document.myform.class2id.options[document.myform.class2id.selectedIndex].value);"><option>选择二级分类</option>';
<%
do while not rs2.eof
%>
str<%=rs1("class1id")%>=str<%=rs1("class1id")%>+'<option value="<%=rs2("class2id")%>"><%=rs2("class2name")%></option>';
<%set rs3=server.createobject("adodb.recordset")
sql3="select * from class3 where class2id="&rs2("class2id")
rs3.open sql3,conn,1,1
if not rs3.eof then
%>
sstr<%=rs2("class2id")%>='<select name=class3id>';
<%
do while not rs3.eof
%>
sstr<%=rs2("class2id")%>=sstr<%=rs2("class2id")%>+'<option value="<%=rs3("class3id")%>"><%=rs3("class3name")%></option>';
<%
rs3.movenext
loop
rs3.close%>
sstr<%=rs2("class2id")%>=sstr<%=rs2("class2id")%>+'</select>';
<%else%>
sstr<%=rs2("class2id")%>='没有分类';
<%end if %>
<%
rs2.movenext
loop
rs2.close%>
str<%=rs1("class1id")%>=str<%=rs1("class1id")%>+'</select>';
<%else%>
str<%=rs1("class1id")%>='没有分类';
<%end if %>
<%
rs1.movenext
loop
rs1.close
%>
function change2(locationid){
if(!locationid)
window.file.innerHTML="";
else
window.file.innerHTML=eval("str"+locationid);
window.file2.innerHTML="";
return false;}
function change3(locationid){
if(!locationid)
window.file2.innerHTML="";
else
window.file2.innerHTML=eval("sstr"+locationid);
return false;}
//-->
</script>
<%end if%>
<table><tr><td><select onChange="change2(document.myform.class1id.options[document.myform.class1id.selectedIndex].value);" name="class1id" id="class1id">
<%=topstr%>
</select></td><td><div id=file></div></td><td><div id=file2></div></td></tr></table>

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧