ASP四级联动做法

时间:2009-07-03 15:35:00 

<form name="frm">
<select name=school onchange="MulSelect(1)"></select>
<select name=department onkeypress=sortMe(this) onchange="MulSelect(2)"></select>
<select name=grade onchange="MulSelect(3)"></select>
<select name=student></select>
<p> </p>
</form>

<script>
// 四级联动
var arrSel=["school","department","grade","student"]
arrData=[];

// 从数据库中读出四级联动的数据, 保存到 arrData 数组中(二维数组)
<%
dim conn,rs
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("test.mdb") & ";Persist Security Info=False"
set rs=conn.execute("select * from dbselect")
do while not rs.eof
%>

arrData[arrData.length]=["<%=trim(rs("school"))%>","<%=trim(rs("department"))%>","<%=trim(rs("grade"))%>","<%=trim(rs("student"))%>"]

<%
rs.movenext
loop
rs.close:set rs=nothing
conn.close:set conn=nothing
%>
</script>

<script>
// 下拉框选择变化时触发的函数,用于重新生成其下级下拉框
// num : 下拉框的级数, 1 表示最顶级
function MulSelect(num)
{
var i,j,arrTemp=[];
// 取得表单当前触发的下拉框的父级下拉框的值, 存放于 arrTemp 数组中(即不需要改变的值)
for(i=0;i<num;i++)
{
arrTemp[i]=eval("document.frm."+arrSel[i]).value
}
if(num<arrSel.length)
{
// 对于触发下拉框的下一级的下拉框
with(eval("document.frm."+arrSel[num]))
{
// 先清空内容
length=0
// 对所有的记录遍历
for(i=0;i<arrData.length;i++)
{
var find=false

// 如果父级下拉框的记录不是当前选中的值,则跳过
for(j=0;j<num;j++)
{
if(arrTemp[j]!=arrData[i][j])
{
break;
}
}
if(j!=num)
{
continue;
}
// 这里已经可以保证第 i 项记录的数据属于当前选项的子数据

// 检查循环过程中是否已经添加了该选项,如果已有了, 则 fine = true
for(m=0;m<options.length;m++)
{
if(options[m].text==arrData[i][num])
{
find=true
}
}
// 若当前没有选项或者尚未添加该选项项,则添加之
if(length==0wsws!find)
{
options[options.length]=new Option(arrData[i][num],arrData[i][num])
}
}

// 递归调用生成下一级菜单的内容
MulSelect((num+1))
}
}
}

// 调用联动函数初始化下拉框
MulSelect(0)
</script>

标签:四级,联动,asp
0
投稿

猜你喜欢

  • 关于web标准的思考

    2008-10-05 10:07:00
  • 扫盲大讲堂:SQL查询结果集对注入的影响及利用

    2009-09-05 09:49:00
  • mysql5在rhel5下乱码问题及解决方法

    2010-12-03 16:26:00
  • 在SQL Server 2005数据库中更改数据架构

    2009-01-19 13:06:00
  • 小结下dom节点操作

    2011-03-08 10:33:00
  • 在ASP中使用SQL语句之7:ORDER BY

    2007-08-11 12:51:00
  • SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期

    2011-10-24 20:14:52
  • ASP导出Excel数据的四种办法

    2007-08-26 18:32:00
  • 如何更改mysql命令下提示信息

    2010-10-25 19:48:00
  • REPAIR TABLE语法介绍——MySQL数据库

    2012-01-05 19:08:59
  • 页面新开窗口的一点补充

    2008-09-10 12:57:00
  • MySQL查询优化

    2009-03-09 14:41:00
  • fso文件按照文件名字母排序

    2008-03-09 15:25:00
  • 下拉列表两级连动的新方法(一)

    2009-06-04 18:18:00
  • MySQL Order By用法

    2011-01-04 19:50:00
  • 倾斜的鼠标翻转导航制作上的烦恼

    2007-06-20 16:39:00
  • 用好FrontPage2003的九大功能

    2008-02-21 14:29:00
  • 了解WEB页面工具语言XML(六)展望

    2008-09-05 17:19:00
  • 兼容Firefox的点击复制js代码

    2008-08-28 12:17:00
  • 互联网产品设计师自我介绍

    2009-04-16 12:45:00
  • asp之家 网络编程 m.aspxhome.com