程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 用JSP+JavaScript打造二級級聯下拉菜單

用JSP+JavaScript打造二級級聯下拉菜單

編輯:關於JSP

     class(一級欄目信息):classId(自動編號),className(欄目名稱), Nclass(二級欄目信息), NclassId(自動編號),NclassName(欄目名稱),parentId(一級欄目id,與class表中的classId關聯)<%@ page contentType=text/html; charset=GB2312 language=java errorPage=../error.jsp %>

    <%@ include file=../conn.jsp%>
    <%@ include file=../ds.jsp%>
    <%@ taglib uri=http://java.sun.com/jsp/jstl/sql divfix=sql %>
    <%request.setCharacterEncoding(gb2312); %>
    <HTML><HEAD>
    <META http-equiv=Content-Type content=text/html; charset=gb2312>
    <TITLE>級聯菜單</TITLE>
    <LINK rel=stylesheet type=text/css href=style.css>
    </HEAD>
    <!--從數據庫中得到二級欄目信息-->
    <%String sql=select * from Nclass order by NclassId asc;
    ResultSet rs=stmt.executeQuery(sql);
    %>
    <!--將二級欄目信息保存到數組subcat中-->
    <script type=text/javascript>
    var onecount;
    onecount=0;
    subcat = new Array();
    <%
    int count = 0;
    while(rs.next()){
    %>
    subcat[<%=count%>] = new Array(<%=rs.getString(NclassName)%>,
    <%=rs.getString(NclassId)%>,<%=rs.getString(parentId)%>);
    <%
    count++;
    }
    rs.close();
    %>
    onecount=<%=count%>;
    <!--決定select顯示的函數-->
    function changelocation(locationid)
    {
    document.myform.NclassId.length = 0;
    var locationid=locationid;
    var i;
    for (i=0;i < onecount; i++)
    {
    if (subcat[i][2] == locationid)
    {
    document.myform.NclassId.options[document.myform.NclassId.length] = new
    Option(subcat[i][0], subcat[i][1]);
    }    
    }

    }  
    </script>
    <FORM method=POST name=myform action=adminsave.jsp?action=add>
    <TABLE>

    <TR>
    <TD>一級分類</TD>
    <TD> 
    <SELECT name=classId onChange=changelocation(document.myform.classId.options
    [document.myform.classId.selectedIndex].value) size=1>
    <OPTION selected value>==請選一級分類==</OPTION>
    <sql:query var=query dataSource=$>
    SELECT * FROM class
    </sql:query>
    <c:forEach var=row items=$>
    <option value=$>$</option>
    </c:forEach>
    </select>
    </TD>
    <TD>選擇二級分類</TD>
    <TD>
    <SELECT name=NclassId>
    <OPTION selected value>==請選二級分類==</OPTION>
    </SELECT>
    </TD>
    </TR>
    </TABLE>

    </FORM>
    </BODY>
    </HTML>
    <%@ page contentType=text/html; charset=GB2312 language=java errorPage=../error.jsp %>
    <%@ include file=../conn.jsp%>
    <%@ include file=../ds.jsp%>
    <%@ taglib uri=http://java.sun.com/jsp/jstl/sql divfix=sql %>
    <%request.setCharacterEncoding(gb2312); %>
    <HTML><HEAD>
    <META http-equiv=Content-Type content=text/html; charset=gb2312>
    <TITLE>級聯菜單</TITLE>
    <LINK rel=stylesheet type=text/css href=style.css>
    </HEAD>
    <!--從數據庫中得到二級欄目信息-->
    <%String sql=select * from Nclass order by NclassId asc;
    ResultSet rs=stmt.executeQuery(sql);
    %>
    <!--將二級欄目信息保存到數組subcat中-->
    <script type=text/javascript>
    var onecount;
    onecount=0;
    subcat = new Array();
    <%
    int count = 0;
    while(rs.next()){
    %>
    subcat[<%=count%>] = new Array(<%=rs.getString(NclassName)%>,
    <%=rs.getString(NclassId)%>,<%=rs.getString(parentId)%>);
    <%
    count++;
    }
    rs.close();
    %>
    onecount=<%=count%>;
    <!--決定select顯示的函數-->
    function changelocation(locationid)
    {
    document.myform.NclassId.length = 0;
    var locationid=locationid;
    var i;
    for (i=0;i < onecount; i++)
    {
    if (subcat[i][2] == locationid)
    {
    document.myform.NclassId.options[document.myform.NclassId.length] = new
    Option(subcat[i][0], subcat[i][1]);
    }    
    }

    }  
    </script>
    <FORM method=POST name=myform action=adminsave.jsp?action=add>
    <TABLE>

    <TR>
    <TD>一級分類</TD>
    <TD> 
    <SELECT name=classId onChange=changelocation(document.myform.classId.options
    [document.myform.classId.selectedIndex].value) size=1>
    <OPTION selected value>==請選一級分類==</OPTION>
    <sql:query var=query dataSource=$>
    SELECT * FROM class
    </sql:query>
    <c:forEach var=row items=$>
    <option value=$>$</option>
    </c:forEach>
    </select>
    </TD>
    <TD>選擇二級分類</TD>
    <TD>
    <SELECT name=NclassId>
    <OPTION selected value>==請選二級分類==</OPTION>
    </SELECT>
    </TD>
    </TR>
    </TABLE>

    </FORM>
    </BODY>
    </HTML>

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved