欢迎光临
我们一直在努力

DW+ASP 玩转动态二级菜单-ASP教程,ASP应用

建站超值云服务器,限时71元/月

一般情况下这种情况是来对二级的目录有用,对于现在网站流传的js好多种,但都无外乎那些令像我这样的菜鸟晕头转向的js代码。。一下子for…一下子array的。

废话少说,切入正题了。

首先得建一个表,当然,如果你的表中就已经建好目录的话,那这一步可以省略了。但有一点要提醒:这个表是我这个例子的使用依据(不知道这样说对不对)。

由于我用的表是access的,所以建表就不说了,只列出这个两个表的相应的字段名(数据库名:db.mdb):

表名:type_tree ——父类

字段:type_id(自动编号) type_name(类别名称)

表名:s_type ——子类

字段:id(自动编号) s_name(子类别名称) type_id(父类id)——与父类表相对应

现在是建立数据库连接:

dim conn, connstrset conn = server.createobject("adodb.connection")connstr = "provider = microsoft.jet.oledb.4.0;"connstr = connstr & "data source = " & server.mappath("db.mdb")conn.open connstr

以上代码应当不用再解释了吧,都是大家常用的代码。。

现在进入实质性的操作:)

二级关联菜单一般情况下都是以下拉菜单来做,这里我也不例外,一样用下拉菜单来做。

只不过这里有一个地方不一样哦。

就是一个用的是跳转菜单,这一点很重要,成功与否全看这个菜单有没有用对!

以下是这个跳转菜单的代码!

<select name="first" onchange="mm_jumpmenu(parent,this,0)">

<%

sql = "select [type_id],[type_name] from [type_tree]"

set rs = conn.execute(sql)取得父类的id及名称

if rs.eof or rs.bof then

response.write "<option>—–</option>" 如果没有记录,就显示—–

else

while not(rs.eof or rs.bof) 有记录,就将父名称列出来,形成下拉。

response.write ("<option value=?sec=" & rs(0) & "")

if cstr(rs(0)) = request.querystring("sec") then

response.write "selected"

end if

response.write (">" & rs(1) & "</option>")

rs.movenext

wend

rs.movefirst 将游标移到第一条,以备下面之用。

end if

%>

</select>

哦,对了,还有一段代码忘了贴出来了,这个是跳转菜音的关键啊,看我粗心的!

补上补上:

<script language="javascript" type="text/javascript">

<!–

function mm_jumpmenu(targ,selobj,restore){ //v3.0

eval(targ+".location="+selobj.options[selobj.selectedindex].value+"");

if (restore) selobj.selectedindex=0;

}

//–>

</script>

以上代码贴到<head>里,是dw生成,我看不太懂什么意思,所以不注解了:d

现在是菜单的二级部分,这里不是用跳转菜单,只是一个列表罢了,所以代码跟上面的跳转菜单也就差一个onchange这个函数。

以下是这个菜单的代码,由于循环跟判断相对上面来说复杂一些,大伙要看清楚一点哦。

<select name="second">

<%if rs.eof or rs.bof then

response.write ("<option>——–</option>")

else

if request.querystring("sec") = "" then 获取跳转之后的sec值

temp=rs(0) 如果为空,就把temp的值设为第一条记录的值

else

temp = request.querystring("sec") 否则就为收到的值

end if

subsql = "select [s_name] from [s_type] where type_id="&temp&""

set subrs = conn.execute(subsql) 列出一切资料为temp的记录

if subrs.eof or subrs.bof then

response.write ("<option>—–</option>")

如果没有记录,则在这个列表中显示"—–"

else

while not(subrs.eof or subrs.bof)否则就用循环列出一切符合条件的记录。

response.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")

subrs.movenext

wend

end if

end if

关闭所有的记录集

subrs.close

set subrs = nothing

rs.close

set rs = nothing

conn.close

set conn = nothing

%>

</select>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » DW+ASP 玩转动态二级菜单-ASP教程,ASP应用
分享到: 更多 (0)

相关推荐

  • 暂无文章