ASP+JS三级联动下拉菜单[调用数据库数据]

转载 2007年09月22日 18:53:00

网上三级菜单多是多但是代码都比较烦,我这个应该说还是比较直观的:

'肯定先要连接数据库了,不用说了
'数据库结构
'类别1表名称:a   字段:ID,Name   说明:ID为主键是类别1的ID值,Name为类别1的名称
'类别2表名称:aa   字段:ID,aID,Name   说明:ID为主键是类别2的ID值,aID为所属类别1的ID值,Name为类别2的名称
'类别3表名称:aaa   字段:ID,aID,aaID,Name   说明:ID为主键是类别3的ID值,aID为所属类别1的ID值,aaID为所属类别2的ID值,Name为类别3的名称

=====test1.asp 你可以测试下,接收到的都是类别的ID值====
<%
response.write"1:"&Request.form("s1")&"<BR>"
response.write"2:"&Request.form("s2")&"<BR>"
response.write"3:"&Request.form("s3")&"<BR>"
%>

=========================================================

<!-- 三级联动菜单 开始 -->
<script language="JavaScript">
<!--
<%
'二级数据保存到数组
Dim count2,rsClass2,sqlClass2
set rsClass2=server.createobject("adodb.recordset")
sqlClass2="select * from aa"
rsClass2.open sqlClass2,conn,1,1
%>
var subval2 = new Array();
//数组结构:一级根值,二级根值,二级显示值
<%
count2 = 0
do while not rsClass2.eof
%>
subval2[<%=count2%>] = new Array('<%=rsClass2("aID")%>','<%=rsClass2("ID")%>','<%=rsClass2("Name")%>')
<%
count2 = count2 + 1
rsClass2.movenext
loop
rsClass2.close
%>

<%
'三级数据保存到数组
Dim count3,rsClass3,sqlClass3
set rsClass3=server.createobject("adodb.recordset")
sqlClass3="select * from aaa"
rsClass3.open sqlClass3,conn,1,1
%>
var subval3 = new Array();
//数组结构:二级根值,三级根值,三级显示值
<%
count3 = 0
do while not rsClass3.eof
%>
subval3[<%=count3%>] = new Array('<%=rsClass3("aaID")%>','<%=rsClass3("ID")%>','<%=rsClass3("Name")%>')
<%
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 a"
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("Name")&"</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>

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

 

相关文章推荐

ASP+JS三级联动下拉菜单&nbsp;调用数据…

'肯定先要连接数据库了,不用说了 '数据库结构 '类别1表名称:a  字段:ID,Name  说明:ID为主键是类别1的ID值,Name为类别1的名称 '类别2表名称:aa  字段:ID,aID,N...

js实现年月日三级下拉菜单联动

一:图片预览: 二:js代码如下: 年月日三下拉框联动 年 月 日 window.onload = function...
  • wangzihu
  • wangzihu
  • 2012年06月19日 15:55
  • 25885

中国地区三级联动下拉菜单的实现

在网上看见的,就弄下来了: function Dsy() { this.Items = {}; } Dsy.prototype.add = function(id,iArray) { this.It...

Android 的 Spinner下拉菜单如何实现 和二级以上的三级联动 (一)

对于Android 开发的时候我们肯定会碰到需要Spinner下拉菜单的时候,这里我们先来介绍一下如何实现三个下拉菜单的简单应用 Spinner的三级请看我下一篇博客吧 一.   首先我...

C#中国地区三级联动下拉菜单

  • 2010年07月20日 15:37
  • 215KB
  • 下载

全国三级联动下拉菜单

  • 2016年12月14日 11:50
  • 139KB
  • 下载

用一个表的三级联动下拉菜单

年、月、日三级联动下拉菜单

  • 2012年12月24日 11:30
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP+JS三级联动下拉菜单[调用数据库数据]
举报原因:
原因补充:

(最多只允许输入30个字)