三级菜单联动

stylemargin0auto 2011-12-31 02:17:43
ACCESS数据库

一级栏目表:Li_Channels(ChannelsID,ChannelsName)
二级栏目表:Li_Categories(CategoriesID,ChannelsID,CategoriesName)
三级栏目表:Li_Class(ClassID,ChannelsID,CategoriesID,ClassName)

三表相关联,二级与三级不一定有数据

三级联动如何写,谢谢帖代码
...全文
61 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_aspnet 2011-12-31
  • 打赏
  • 举报
回复
参考:
<%
'数据库结构
'类1:id:为主键,类名:类别名称
'类2:id:为主键,f_id:类1的主键ID,类名:类别名称
'类3:id:为主键,ff_id:类1的主键ID,f_id:类2的主键ID,类名:类别名称
set conn=Server.CreateObject("ADODB.Connection")
provider="provider=Microsoft.Jet.OLEDB.4.0;"
DBpath="Data Source=" & Server.MapPath("数据库路径名称")
conn.open provider & DBpath
%>
<!-- 三级联动菜单 开始 -->
<script language="JavaScript">
<!--
<%
'二级数据保存到数组
Dim count2,rsClass2,sqlClass2
set rsClass2=server.createobject("adodb.recordset")
sqlClass2="select * from 类2"
rsClass2.open sqlClass2,conn,1,1
%>
var subval2=new Array();
//数组结构:一级根值,二级根值,二级显示值
<%
count2=0
do while not rsClass2.eof
%>
subval2[<%=count2%>]=new Array('<%=rsClass2("f_id")%>','<%=rsClass2("id")%>','<%=rsClass2("类名")%>')
<%
count2=count2 + 1
rsClass2.movenext
loop
rsClass2.close
%>

<%
'三级数据保存到数组
Dim count3,rsClass3,sqlClass3
set rsClass3=server.createobject("adodb.recordset")
sqlClass3="select * from 类3"
rsClass3.open sqlClass3,conn,1,1
%>
var subval3=new Array();
//数组结构:二级根值,三级根值,三级显示值
<%
count3=0
do while not rsClass3.eof
%>
subval3[<%=count3%>]=new Array('<%=rsClass3("f_id")%>','<%=rsClass3("id")%>','<%=rsClass3("类名")%>')
<%
count3=count3 + 1
rsClass3.movenext
loop
rsClass3.close
%>

function changeselect1(locationid)
{
document.form1.s2.length=0;
document.form1.s2.options[0]=new Option('==请选择类别==','');
document.form1.s3.length=0;
document.form1.s3.options[0]=new Option('==请选择专题==','');
for (i=0;i<subval2.length;i++)
{
if (subval2[i][0] == locationid)
{ document.form1.s2.options[document.form1.s2.length]=new Option(subval2[i][2],subval2[i][1]);}
}
}

function changeselect2(locationid)
{
document.form1.s3.length=0;
document.form1.s3.options[0]=new Option('==请选择专题==','');
for (i=0;i<subval3.length;i++)
{
if (subval3[i][0] == locationid)
{ document.form1.s3.options[document.form1.s3.length]=new Option(subval3[i][2],subval3[i][1]);}
}
}
//-->
</script>

<form name="form1"method="post"action="test1.asp">

三级联动:
<%
Dim count1,rsClass1,sqlClass1
set rsClass1=server.createobject("adodb.recordset")
sqlClass1="select * from 类1"
rsClass1.open sqlClass1,conn,1,1
%>
<select name="s1"onChange="changeselect1(this.value)">
<option>==请选择频道==</option>
<%
count1=0
do while not rsClass1.eof
response.write"<option value="& rsClass1("id")& ">"& rsClass1("类名")& "</option>"
count1=count1 + 1
rsClass1.movenext
loop
rsClass1.close
%>
</select>

<select name="s2" onChange="changeselect2(this.value)">
<option>==请选择类别==</option>
</select>

<select name="s3">
<option>==请选择专题==</option>
</select>
<input type="submit"name="Submit"value="提交"></form>

<!-- 三级联动菜单 结束 -->

28,391

社区成员

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

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