• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
笨笨笨笨
博客园    首页    新随笔    联系   管理    订阅  订阅

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

本文转载自:http://info.codepub.com/2006/10/info-11484.html

'肯定先要连接数据库了,不用说了
'数据库结构
'类别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的名称
<!-- 三级联动菜单 开始 -->
<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>

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

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

========================================
posted @ 2009-07-26 14:47  笨笨笨笨  阅读(364)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3