如何使用Dreamweaver制作二级联动菜单?
怎么使用DW制作二级联动菜单?ASP+SQL的。我使用的是SQL数据库,大类bigclasname,小类smallclassname.怎么具体操作啊?高分求助,100分!...
怎么使用DW制作二级联动菜单?ASP+SQL的。我使用的是SQL数据库,大类bigclasname,小类smallclassname.怎么具体操作啊?高分求助,100分!效果好的话还会追加分数!
我要问的是动态二级菜单,不是导航菜单。请高手们说一下。 展开
我要问的是动态二级菜单,不是导航菜单。请高手们说一下。 展开
5个回答
展开全部
一般都要加JavaScript实现联动
SQL数据库:
==大类:字段名称-数据类型-长度-允许空
(主键) id--int--4--N
school_id--int--4--N
name--char--20--N
==小类:字段名称-数据类型-长度-允许空
(主键) id--int--4--N
class_name--char--20--N
v_school--char--8--N
数据库添加内容:-------------------
==大类:
id--school_id--name
1 1 大类1
2 2 大类2
3 3 大类3
==小类:
id--class_name--v_school
1 小类1-1 1
2 小类1-2 1
3 小类2-1 2
4 小类2-2 2
5 小类3-1 3
6 小类3-2 3
实现代码:-----------------------
<!--#include file="conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<%
A = request.Form("anclassid")
B = request.Form("Nclassid")
if request.Form("Submit")="提交" then
response.Write "a="&A
response.Write "<br>b="&B
response.End()
end if
dim count
set rs=server.createobject("adodb.recordset")
'--------取出小类里的数据,Nclassidorder:小类在大类里的ID号
rs.open "select * from class order by id ",conn,1,1%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
<!---读出数据存入数组,第一位:class_name是小类名称,第二位:v_school是小类在大类里的ID号,三位:小类ID----->
subcat[<%=count%>] = new Array("<%= trim(rs("class_name"))%>","<%= rs("v_school")%>","<%= rs("id")%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;
function changelocation(locationid)
{
document.myform.Nclassid.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{ //这句不是很理解
document.myform.Nclassid.options[document.myform.Nclassid.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
<body>
<table cellpadding="3" cellspacing="1" border="0" width="100%" class="tableBorder" align=center>
<tr height=25>
<th class="tableHeaderText" colspan=6 height=25> </th>
</tr>
<tr>
<td class="forumRowHighlight" >
<table align=center>
<form name="myform" method="post" action="test.asp" OnSubmit="return checkkk()" >
<tr>
<td width="8%"> </td>
<td colspan="2">
<p>
<%
rs.open "select * from school order by school_id",conn,1,1
'-----------列出大类数据
if rs.eof and rs.bof then
response.write "请先添加栏目。"
response.end
else
%>
大类:
<select name="anclassid" size="1" id="anclassid" onChange="changelocation(document.myform.anclassid.options[document.myform.anclassid.selectedIndex].value)">
<!--第一个:school_id是大类ID,第二个name是大类名称 -------------->
<option selected value="<%=rs("school_id")%>"><%=trim(rs("name"))%></option>
<% dim selclass
'--------selclass是临时赋值器,小类展开时会用到
selclass=rs("school_id")
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("school_id")%>"><%=trim(rs("name"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>小类:<select name="Nclassid">
<!---- 查找小类里同上selclass值相同的数据------->
<%
rs.open "select * from class where v_school="&selclass ,conn,1,1
if not(rs.eof and rs.bof) then %>
<!---- id:小类ID,第二个是小类名称------->
<option selected value="<%=rs("id")%>"><%=rs("class_name")%></option>
<%
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("class_name")%></option>
<%
rs.movenext
loop
end if
rs.close
set rs = nothing
%>
</select>
</p>
</td>
</tr>
</form>
</table>
</body>
</html>
SQL数据库:
==大类:字段名称-数据类型-长度-允许空
(主键) id--int--4--N
school_id--int--4--N
name--char--20--N
==小类:字段名称-数据类型-长度-允许空
(主键) id--int--4--N
class_name--char--20--N
v_school--char--8--N
数据库添加内容:-------------------
==大类:
id--school_id--name
1 1 大类1
2 2 大类2
3 3 大类3
==小类:
id--class_name--v_school
1 小类1-1 1
2 小类1-2 1
3 小类2-1 2
4 小类2-2 2
5 小类3-1 3
6 小类3-2 3
实现代码:-----------------------
<!--#include file="conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<%
A = request.Form("anclassid")
B = request.Form("Nclassid")
if request.Form("Submit")="提交" then
response.Write "a="&A
response.Write "<br>b="&B
response.End()
end if
dim count
set rs=server.createobject("adodb.recordset")
'--------取出小类里的数据,Nclassidorder:小类在大类里的ID号
rs.open "select * from class order by id ",conn,1,1%>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
<!---读出数据存入数组,第一位:class_name是小类名称,第二位:v_school是小类在大类里的ID号,三位:小类ID----->
subcat[<%=count%>] = new Array("<%= trim(rs("class_name"))%>","<%= rs("v_school")%>","<%= rs("id")%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;
function changelocation(locationid)
{
document.myform.Nclassid.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{ //这句不是很理解
document.myform.Nclassid.options[document.myform.Nclassid.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
<body>
<table cellpadding="3" cellspacing="1" border="0" width="100%" class="tableBorder" align=center>
<tr height=25>
<th class="tableHeaderText" colspan=6 height=25> </th>
</tr>
<tr>
<td class="forumRowHighlight" >
<table align=center>
<form name="myform" method="post" action="test.asp" OnSubmit="return checkkk()" >
<tr>
<td width="8%"> </td>
<td colspan="2">
<p>
<%
rs.open "select * from school order by school_id",conn,1,1
'-----------列出大类数据
if rs.eof and rs.bof then
response.write "请先添加栏目。"
response.end
else
%>
大类:
<select name="anclassid" size="1" id="anclassid" onChange="changelocation(document.myform.anclassid.options[document.myform.anclassid.selectedIndex].value)">
<!--第一个:school_id是大类ID,第二个name是大类名称 -------------->
<option selected value="<%=rs("school_id")%>"><%=trim(rs("name"))%></option>
<% dim selclass
'--------selclass是临时赋值器,小类展开时会用到
selclass=rs("school_id")
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("school_id")%>"><%=trim(rs("name"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>小类:<select name="Nclassid">
<!---- 查找小类里同上selclass值相同的数据------->
<%
rs.open "select * from class where v_school="&selclass ,conn,1,1
if not(rs.eof and rs.bof) then %>
<!---- id:小类ID,第二个是小类名称------->
<option selected value="<%=rs("id")%>"><%=rs("class_name")%></option>
<%
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("class_name")%></option>
<%
rs.movenext
loop
end if
rs.close
set rs = nothing
%>
</select>
</p>
</td>
</tr>
</form>
</table>
</body>
</html>
展开全部
怎么使用DW制作二级联动菜单?ASP+SQL的。我使用的是SQL数据库,大类bigclasname,小类smallclassname.怎么具体操作啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要代码的话到相关的前端素材网站上搜,有很多种方式,纯css或者js的;要是想怎么用DW制作的话就去找相关视频吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在CS4版本前,我是用层来实现二级菜单的,即:用行为的方式,并把调用数据库的菜单名称放在层中。
现在使用CS4,感觉网页菜单(导航栏)的设计比以前方便了很多
插入——布局对象——菜单栏
再对菜单栏属性作修改即可
现在使用CS4,感觉网页菜单(导航栏)的设计比以前方便了很多
插入——布局对象——菜单栏
再对菜单栏属性作修改即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的方法:
从网上找到二级联动JS代码,插入想要实现的位置后,用CSS对DIV进行装饰和修改。
常用方法原理:
<li></il>里面套一个<ul><li></li></ul>,然后在样式中将其隐藏,隐藏方法是一级菜单设置好固定大小和宽度,加上overflow:hidden(多余隐藏),当鼠标滑过时(.hover{}),去掉代码,而且之前要做好相对定位position:relative;防止整体布局变形。
注意:定位做好,就不会变形。
从网上找到二级联动JS代码,插入想要实现的位置后,用CSS对DIV进行装饰和修改。
常用方法原理:
<li></il>里面套一个<ul><li></li></ul>,然后在样式中将其隐藏,隐藏方法是一级菜单设置好固定大小和宽度,加上overflow:hidden(多余隐藏),当鼠标滑过时(.hover{}),去掉代码,而且之前要做好相对定位position:relative;防止整体布局变形。
注意:定位做好,就不会变形。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |