用JSP+JavaScript打造二级级联下拉菜单

  • 来源: 互联网 作者: rocket   2008-03-17/13:40
  • JSP+JavaScript打造二级级联下拉菜单:

    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>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多