这个问题应该是用js生成菜单,用jsp读数据库,然后生成动态菜单
如:
<SCRIPT language=JavaScript1.2>
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4) {
with (document) {
write("<STYLE TYPE='text/css'>");
if (NS4) {
write(".parent {position:absolute; visibility:visible}");
write(".child {position:absolute; visibility:visible}");
write(".regular {position:absolute; visibility:visible}")
}
else {
write(".child {display:none}")
}
write("</STYLE>");
}
}
function getIndex(el) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id == el) {
ind = i;
break;
}
}
return ind;
}
function arrange() {
nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
function initIt(){
if (!ver4) return;
if (NS4) {
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
divColl = document.all.tags("DIV");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";
}
}
}
function expandIt(el) {
if (!ver4) return;
if (IE4) {
whichEl = eval(el + "Child");
if (whichEl.style.display == "none") {
whichEl.style.display = "block";
}
else {
whichEl.style.display = "none";
}
}
else {
whichEl = eval("document." + el + "Child");
if (whichEl.visibility == "hide") {
whichEl.visibility = "show";
}
else {
whichEl.visibility = "hide";
}
arrange();
}
}
onload = initIt;
</SCRIPT> /////////////
<%
这里读你的数据库,然后存数组,记下数组的长度i
for(j=0;j<i;j++)
{ %> <DIV class=parent id=<%="KB"+j+"Parent"%>>    <A
href="http://"
onclick="expandIt('<%="KB"+j%>'); return false"><IMG border=0 height=16 src="../images/teach_unit.gif" width=20><font color="#000080" size="2"><%=name[j]%>(一级菜单的名字)</font></A></DIV>
<DIV class=child id=<%="KB"+j+"Child"%>>
<% //从数据库得到二级菜单
Rst=Stmt.executeQuery("select sub_id,sub_name,sub_student_pass from teach_subject where sub_f_id='"+id[j]+"' order by sub_id");
while(Rst.next())
{
int sub_id=Rst.getInt("sub_id");
String sub_name=Rst.getString("sub_name");
String sub_student_pass=Rst.getString("sub_student_pass");
%>
<IMG height=13
src="../images/teach_part.gif" width=19>
<%
if(sub_student_pass.equals("0"))
{%>
<A href="sub_menu.jsp?sub_id=<%=sub_id%>">
<%}
else{%>
<A href="sub_pass.jsp?sub_id=<%=sub_id%>" target=main>
<%}%>
<font size="2"><font color="#000080"><%=sub_name%></font></a></font>
<BR>
<%}%>
</DIV>
<%}%> 这是一个动态二级菜单的例子,不过比较乱,你凑合这看吧:)
如:
<SCRIPT language=JavaScript1.2>
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4) {
with (document) {
write("<STYLE TYPE='text/css'>");
if (NS4) {
write(".parent {position:absolute; visibility:visible}");
write(".child {position:absolute; visibility:visible}");
write(".regular {position:absolute; visibility:visible}")
}
else {
write(".child {display:none}")
}
write("</STYLE>");
}
}
function getIndex(el) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id == el) {
ind = i;
break;
}
}
return ind;
}
function arrange() {
nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
function initIt(){
if (!ver4) return;
if (NS4) {
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
divColl = document.all.tags("DIV");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";
}
}
}
function expandIt(el) {
if (!ver4) return;
if (IE4) {
whichEl = eval(el + "Child");
if (whichEl.style.display == "none") {
whichEl.style.display = "block";
}
else {
whichEl.style.display = "none";
}
}
else {
whichEl = eval("document." + el + "Child");
if (whichEl.visibility == "hide") {
whichEl.visibility = "show";
}
else {
whichEl.visibility = "hide";
}
arrange();
}
}
onload = initIt;
</SCRIPT> /////////////
<%
这里读你的数据库,然后存数组,记下数组的长度i
for(j=0;j<i;j++)
{ %> <DIV class=parent id=<%="KB"+j+"Parent"%>>    <A
href="http://"
onclick="expandIt('<%="KB"+j%>'); return false"><IMG border=0 height=16 src="../images/teach_unit.gif" width=20><font color="#000080" size="2"><%=name[j]%>(一级菜单的名字)</font></A></DIV>
<DIV class=child id=<%="KB"+j+"Child"%>>
<% //从数据库得到二级菜单
Rst=Stmt.executeQuery("select sub_id,sub_name,sub_student_pass from teach_subject where sub_f_id='"+id[j]+"' order by sub_id");
while(Rst.next())
{
int sub_id=Rst.getInt("sub_id");
String sub_name=Rst.getString("sub_name");
String sub_student_pass=Rst.getString("sub_student_pass");
%>
<IMG height=13
src="../images/teach_part.gif" width=19>
<%
if(sub_student_pass.equals("0"))
{%>
<A href="sub_menu.jsp?sub_id=<%=sub_id%>">
<%}
else{%>
<A href="sub_pass.jsp?sub_id=<%=sub_id%>" target=main>
<%}%>
<font size="2"><font color="#000080"><%=sub_name%></font></a></font>
<BR>
<%}%>
</DIV>
<%}%> 这是一个动态二级菜单的例子,不过比较乱,你凑合这看吧:)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货