主题:  我也不知道属于哪一类问题

studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#12006/5/13 7:13:34
allinhands大哥, 蓝鲸大哥,帮帮忙。
问题有点难叙述清楚,我晕!
大哥们一定要耐心看啊!
问题类似于论坛分坛,但我的问题不存在分坛上。
先看主导航的数据库:

图片如下:

然后在页面实现了这样:

图片如下:

然后我做了下拉菜单,是用JS控制的一个层。
代码如下:
<SCRIPT language=javascript>
<!--
function showMenu(oSrc,e,sCont,n)
{
	var lay;
	lay=document.getElementById("topicPrompt");
	lay.style.visibility='visible';
	if(n==0){
		var x=document.body.scrollLeft + e.clientX - e.offsetX + oSrc.offsetLeft - 12;
		var y=document.body.scrollTop + e.clientY - e.offsetY + oSrc.offsetTop + 18;
		lay.style.left=x;
		lay.style.top=y;
		n=1;
		}
	else{
		lay.style.left=x;
		lay.style.top=y;
		}
}
function hideMenu(s)
{
	var lay=document.getElementById(s);
	if(lay) lay.style.visibility='hidden';
}
//-->
</SCRIPT>

<DIV id=topicPrompt onMouseOver="showMenu(this,event,&quot;1111&quot;,1)" onmouseout="hideMenu('topicPrompt')"
style="BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dddddd 1px solid; PADDING-LEFT: 12px; Z-INDEX: 1; BACKGROUND: #ffffff; FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=7, Direction=135, color=#aaaaaa); VISIBILITY: hidden; PADDING-BOTTOM: 0px; BORDER-LEFT: #dddddd 1px solid;LINE-HEIGHT: 22px; PADDING-TOP: 8px; BORDER-BOTTOM: #dddddd 1px solid; POSITION: absolute; HEIGHT: 30px">这里将放置下边表中的TITLE</DIV>


这个层里边要放的是这个表里边的东西:

图片如下:

这个表的idno字段与上边那个表的id关联。

我现在解决不了的问题是,当鼠标放在了比如“网站建设”上边,就在层中显示出第二个表中idno等于第一个表中id相同的字段中的内容。
简单的说,就是怎样onMouseOver的时候,让我知道鼠标onMouseOver所对应的第一个表中的id,以可以让我对应的去搜索第二个表中对应的idno中的内容?

也不知道说清楚了没有,晕死,搞一个通宵了,没搞出来。



studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#22006/5/13 7:16:14
先去吃点东西



yiliaocheng

职务:普通成员
等级:2
金币:2.0
发贴:631
注册:2005/12/29 19:33:15
#32006/5/13 10:13:37
我也曾经想做过这种效果,也发过帖子,可是没人能回答,这里只好同情你下了。我已经放弃了这种效果。



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#42006/5/13 10:20:29
id可以有很多方法传递,比如当作参数



studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#52006/5/13 13:45:16
不太明白,怎样onMouseOver的时候,传递这个ID值呢?



studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#62006/5/13 13:52:34
真的很着急,构思这个网站很久了,以前没到这个问题,这才刚刚开始,就遇到了不可逾越的障碍,真的很不希望这样。在设计这一块我是个白痴,好不容易自己设计出一个自己感觉舒服的网站,不希望就这样结束了。
各位大哥一定要帮帮忙啊!!!很多网站都实现了我说的这种效果,应该是可以办到的吧。



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#72006/5/13 14:06:55
可以把二个表的记录一次性读取放在二个数组中
用二个循环,第一个循环读取主栏目数组,第二循环(内循环)读取与主栏目相关ID号的数组记录。
其它方法与做静态菜单方法一样。


非常大鱼

studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#82006/5/13 14:20:53
这个注意不错,这样可以让显示没有延迟。
但是怎样进行对应的显示呢?
还是不太明白onMouseOver的时候,怎样对应的显示。
可以举个小例子让我理解一下吗?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#92006/5/13 14:22:05
onMouseOver = func(para1,para2,id)



studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#102006/5/13 14:24:45
allinhands在上个帖子中说
引用:
onMouseOver = func(para1,para2,id)


什么时候给ID赋值呢?



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
注册:2004/1/14 19:14:47
#112006/5/13 14:26:17
你在输出一级导航的时候就可以把参数写进去啊



studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#122006/5/13 14:28:05
恩 我去试试



studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#132006/5/13 14:42:52
不行,我怎么知道我鼠标放在一级导航上边的哪个兰目上边?
比如有“网站建设”,“我的亲人”。前者的ID=1,后者的ID=2。
我怎么让鼠标放在前者的时候,传递ID=1,让鼠标放在后者的时候,传递ID=2?



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
#142006/5/13 15:11:47
当栏目ID为1时,读取第2数组中所有相关ID为1的记录就行,放在次栏目中。

其实如果搞清了静态菜单的做法,做动态的不是很难。


非常大鱼

studyASP

职务:普通成员
等级:1
金币:0.0
发贴:44
注册:2006/5/9 20:48:30
#152006/5/13 19:39:11
已经做到这里了,帮我看看,下边应该怎么做,好吗?
一级导航放在:myarry1()里边,这是一维数组
二级导航防在:myarry2()里边,这是二维数组
<!-- #include file="conn.asp" -->
<%
set rs1=server.createobject("adodb.recordset")
sql="select id,theme from wlj_theme"
rs1.open sql,conn,1,1

set rs2=server.createobject("adodb.recordset")
sql="select idno,title from wlj_title"
rs2.open sql,conn,1,1
%>
<%
dim myarry1()
dim myarry2()
dim x
dim y
x=0
redim myarry1(rs1.recordcount)
redim myarry2(rs1.recordcount-1,rs2.recordcount-1)
if ((not rs1.bof) and (not rs1.eof)) then
    do until rs1.eof
        myarry1(x)=rs1("theme")
        'response.write("<br>"&myarry1(x)&":")
        if ((not rs2.bof) and (not rs2.eof)) then
            y=0
            do until rs2.eof
                if rs2("idno")=rs1("id") then
                    myarry2(x,y)=rs2("title")
                    'response.write(myarry2(x,y)&"&nbsp;&nbsp;")
                end if
                rs2.movenext
                y=y+1
            loop
            rs2.movefirst
        end if
    rs1.movenext
    x=x+1
    loop
    x=x-1
    y=y-1
end if
%>
<html>
<head><title>郁闷死我了</title>
<SCRIPT language=javascript>
<!--
function showMenu(oSrc,e,sCont,n)
{
    var lay;
    lay=document.getElementById("topicPrompt");
    lay.style.visibility='visible';
    if(n==0){
        var x=document.body.scrollLeft + e.clientX - e.offsetX + oSrc.offsetLeft+20;
        var y=document.body.scrollTop + e.clientY - e.offsetY + oSrc.offsetTop + 18;
        lay.style.left=x;
        lay.style.top=y;
        n=1;
        }
    else{
        lay.style.left=x;
        lay.style.top=y;
        }
}
function hideMenu(s)
{
    var lay=document.getElementById(s);
    if(lay) lay.style.visibility='hidden';
}
//-->
</SCRIPT>
</head>
<DIV id=topicPrompt onMouseOver="showMenu(this,event,&quot;1111&quot;,1)" onmouseout="hideMenu('topicPrompt')"
style="BORDER-RIGHT: #dddddd 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dddddd 1px solid; PADDING-LEFT: 12px; Z-INDEX: 1; BACKGROUND: #ffffff; FILTER: progid:DXImageTransform.Microsoft.Shadow(Strength=7, Direction=135, color=#aaaaaa); VISIBILITY: hidden; PADDING-BOTTOM: 0px; BORDER-LEFT: #dddddd 1px solid;LINE-HEIGHT: 22px; PADDING-TOP: 8px; BORDER-BOTTOM: #dddddd 1px solid; POSITION: absolute; HEIGHT: 30px"></DIV>
<table border=1><tr>
<%
for i=0 to ubound(myarry1)-1
%>
<td><a href="xxx.asp" onmouseover="showMenu(this,event,&quot;520&quot;,0)" onmouseout="hideMenu('topicPrompt')"><%=myarry1(i)%></a></td>
<%next%>
</tr></table>
    
    
    
    
    
    
<%    
    'for j=0 to ubound(myarry2,2)
        'response.write(myarry2(i,j))
    'next
    

rs1.close
set rs1=nothing
rs2.close
set rs2=nothing
conn.close
set conn=nothing
%>