| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1440 人关注过本帖
标题:请教yms123,谢谢!
只看楼主 加入收藏
princes
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-24
收藏
 问题点数:0 回复次数:25 
请教yms123,谢谢!

请教yms123:
yms123你好!看了你对二级菜单的答复及源代码,非常感谢。但是我为了好看一些(主要是为了看起来方便,比较习惯这样的方式),进行了修改,但是修改后拿取出来的子菜单却只能显示第一条(response出来记录数也为三条),其他的不能显示。请帮忙,谢谢!代码如下:

<%
dim cn,rs,tablenum,strMenuID,I,J,strSonMenu
set cn = Server.CreateObject("Adodb.Connection")
cn.open "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=lctdata;Data Source=localhost"
Set rs = Server.CreateObject("Adodb.Recordset")
Set rs1 = Server.CreateObject("Adodb.Recordset")
'rs.open "select A.*,B.* from Menu_Role A,Menu_Info B where Role_User='" & strLoginName & "'",cn,1,3
rs.open "select A.*,B.* from Menu_Role A,Menu_Info B where A.Role_ID=B.Menu_ID and Parent_id=0 and A.Role_User='" & strLoginName & "'",cn,1,1

%>
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language=javascript>
function ShowLayer(index)
{
if(this.Layer(index).style.display=="none")
{
this.Layer(index).style.display="block";
}
else
{
this.Layer(index).style.display="none";
}
}
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="">

<table width="41%" border="0" height="116" id="table1">
<%
if not rs.eof then
rs.movefirst
for I=1 to rs.recordcount
strSonMenu = rs("menu_id")

%>
<tr>
<td><a href=# onclick=ShowLayer(0);><%=rs("menu_name")%>菜单一</a></td>
</tr>
<%
response.write strSonMenu
if rs1.state=1 then rs1.close
rs1.Open "select * From menu_info Where Parent_id='" & strSonMenu & "'",cn,1,1
IF Not rs1.EOF Then
for j=1 to rs1.recordcount
%>
<tr>
<td>
<div style=display:none; id=Layer><img src="child.gif"><%=rs1("menu_name")%></div>
</td>
</tr>
<% rs1.MoveNext
next
End IF
rs.MoveNext
next
end if%>
</table>

</form>
</body>
</html>

搜索更多相关主题的帖子: 子菜单 源代码 
2006-05-25 13:51
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
楼主的数据库是什么结构?
也就是数据库里
子菜单和主菜单的信息在那个表里?
2006-05-25 14:13
princes
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-24
收藏
得分:0 
yms123:
你好!
我的子菜单和主菜单都是在一个表里,其中主菜单的parent_id为0,如果为子菜单,那么parent_id就为它父菜单的ID。数据表是这样的:Menu_ID,Parent_ID,Menu_Name,Link_File

[此贴子已经被作者于2006-5-25 15:06:17编辑过]

2006-05-25 15:04
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
<%
if not rs.eof then
rs.movefirst
Do Until rs.EOF
strSonMenu = rs("menu_id")

%>
<tr>
<td><a href=# onclick=ShowLayer(0);><%=rs("menu_name")%>菜单一</a></td>
</tr>
<%
response.write strSonMenu
if rs1.state=1 then rs1.close
rs1.Open "select * From menu_info Where Parent_id='" & strSonMenu & "'",cn,1,1
IF Not rs1.EOF Then
Do Until rs1.EOF
%>
<tr>
<td>
<div style=display:none; id=Layer><img src="child.gif"><%=rs1("menu_name")%></div>
</td>
</tr>
<% rs1.MoveNext
Loop
End IF
IF rs1.State=1 Then rs1.Close
rs.MoveNext
Loop
end if%>
这样循环是应该可以的。

2006-05-25 21:43
princes
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-24
收藏
得分:0 
yms123:

你好!还是不行,请问你那边行吗?
2006-05-26 12:02
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
回复:(princes)yms123: 你好!还是不行,请问你那...
以下是引用princes在2006-5-26 12:02:00的发言:
yms123:

你好!还是不行,请问你那边行吗?

什么地方不行?

2006-05-26 13:56
princes
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-24
收藏
得分:0 
就是上面你贴的哪个代码,循环的时候,子菜单还是只能出现一个(我的总共有三个子菜单),其他的两个子菜单不能出现
2006-05-26 14:07
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
回复:(princes)就是上面你贴的哪个代码,循环的时候...
以下是引用princes在2006-5-26 14:07:00的发言:
就是上面你贴的哪个代码,循环的时候,子菜单还是只能出现一个(我的总共有三个子菜单),其他的两个子菜单不能出现

只能出现一个?那个代码这么看按说没有问题,这个代码同一页面的其他代码有吗?

2006-05-26 14:15
princes
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-5-24
收藏
得分:0 

yms123:
你好!
下面是我的全部代码,我在子菜单的循环中可以response所有的子菜单是3个,但是显示却只显示第一个子菜单,其他两个子菜单没有什么反应,也不会多出一空行。数据库结构我的主菜单和子菜单在同一个表中,表里面有menu_Id,parent_ID,menu_name 如果为0那么menu_id就没有子菜单,如果parent_id不为零,那么他的父菜单ID就为menu_id的编号,菜单名就是后面menu_name的值:
<%
dim cn,rs,tablenum,strMenuID,I,J,strSonMenu,strLoginName
set cn = Server.CreateObject("Adodb.Connection")
cn.open "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=lctdata;Data Source=localhost"
Set rs = Server.CreateObject("Adodb.Recordset")
Set rs1 = Server.CreateObject("Adodb.Recordset")
strLoginName="zhang"
'rs.open "select A.*,B.* from Menu_Role A,Menu_Info B where Role_User='" & strLoginName & "'",cn,1,3
rs.open "select A.*,B.* from Menu_Role A,Menu_Info B where A.Role_ID=B.Menu_ID and Parent_id=0 and A.Role_User='" & strLoginName & "'",cn,1,1
%>
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<script language=javascript>
function ShowLayer(index)
{
if(this.Layer(index).style.display=="none")
{
this.Layer(index).style.display="block";
}
else
{
this.Layer(index).style.display="none";
}
}
</script>
</head>
<table border="1" style="border-collapse: collapse" width="60%" id="table1">
<%
if not rs.eof then
rs.movefirst
Do Until rs.EOF
strSonMenu = rs("menu_id")
%>
<tr>
<td><a href=# onclick=ShowLayer(0);><%=rs("menu_name")%>菜单一</a></td>
</tr>
<%
response.write strSonMenu
if rs1.state=1 then rs1.close
rs1.Open "select * From menu_info Where Parent_id='" & strSonMenu & "'",cn,1,1
response.write rs1.recordcount
IF Not rs1.EOF Then
Do Until rs1.EOF
%>
<tr>
<td>
<div style=display:none; id=Layer><img src="child.gif"><%=rs1("menu_name")%></div>
</td>
</tr>
<% rs1.MoveNext
Loop
End IF
IF rs1.State=1 Then rs1.Close
rs.MoveNext
Loop
end if%>


</table>
</html>

[此贴子已经被作者于2006-5-26 14:37:28编辑过]

2006-05-26 14:34
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
<td><a href=# onclick=ShowLayer(0);><%=rs("menu_name")%>菜单一</a></td>
这个红字的值楼主没有循环吧?
2006-05-26 14:50
快速回复:请教yms123,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016401 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved