JSP+JavaScript crea un menú desplegable en cascada de segundo nivel:
clase (información de columna de primer nivel): classId (numeración automática), className (nombre de columna), Nclass (información de columna secundaria), NclassId (numeración automática), NclassName ( nombre de columna), parentId (id de columna de primer nivel, asociado con classId en la tabla de clases)
<%@ tipo de contenido de página=text/html charset=GB2312 language=java errorPage=../error.jsp %>
<%@ incluir archivo=../conn.jsp%>
<%@ incluir archivo=../ds.jsp%>
<%@ taglib uri=http://java.sun.com/jsp/jstl/sql divfix=sql %>
<%request.setCharacterEncoding(gb2312 %>);
<HTML><CABEZAL>
<META http-equiv=Tipo de contenido content=text/html; charset=gb2312>
<TITLE>Menú en cascada</TITLE>
<ENLACE rel=tipo de hoja de estilo=texto/css href=estilo.css>
</CABEZA>
<!--Obtener información de la columna secundaria de la base de datos-->
<%String sql=select * del orden Nclass por NclassId asc;
Conjunto de resultados rs=stmt.executeQuery(sql);
%>
<!--Guarde la información de la columna secundaria en la matriz subcat-->
<tipo de script=texto/javascript>
var un recuento;
una cuenta=0;
subcat = nueva matriz();
<%
recuento int = 0;
mientras(rs.siguiente()){
%>
subcat[<%=count%>] = nueva matriz(<%=rs.getString(NclassName)%>,
<%=rs.getString(NclassId)%>,<%=rs.getString(parentId)%>);
<%
contar++;
}
rs.cerrar();
%>
onecount=<%=count%>;
<!--Función que determina la visualización seleccionada-->
función cambiar ubicación (ubicaciónid)
{
document.myform.NclassId.length = 0;
var ubicaciónid=ubicaciónid;
var i;
para (i=0;i < una cuenta; i++)
{
si (subcat[i][2] == ID de ubicación)
{
document.myform.NclassId.options[document.myform.NclassId.length] = nuevo
Opción(subcat[i][0], subcat[i][1]);
}
}
}
</script>
<Método FORM=POST nombre=miformulario acción=adminsave.jsp?action=add>
<TABLA>
<TR>
<TD>Clasificación de primer nivel</TD>
<TD>
<SELECCIONAR nombre=classId onChange=cambiar ubicación(document.myform.classId.options
[document.myform.classId.selectedIndex].valor) tamaño=1>
<OPCIÓN valor seleccionado>==Por favor seleccione una categoría de primer nivel==</OPCIÓN>
<sql:consulta var=consulta fuente de datos=$>
SELECCIONAR * DE la clase
</sql:consulta>
<c:forEach var=elementos de fila=$>
<valor de opción=$>$</opción>
</c:paraCada>
</seleccionar>
</TD>
<TD>Seleccione una categoría secundaria</TD>
<TD>
<SELECCIONAR nombre=NclassId>
<OPCIÓN valor seleccionado>==Por favor seleccione la categoría de segundo nivel==</OPCIÓN>
</SELECCIONAR>
</TD>
</TR>
</TABLA>
</FORM>
</CUERPO>
</HTML>
<%@ tipo de contenido de página=text/html charset=GB2312 language=java errorPage=../error.jsp %>
<%@ incluir archivo=../conn.jsp%>
<%@ incluir archivo=../ds.jsp%>
<%@ taglib uri=http://java.sun.com/jsp/jstl/sql divfix=sql %>
<%request.setCharacterEncoding(gb2312 %>);
<HTML><CABEZAL>
<META http-equiv=Tipo de contenido content=text/html; charset=gb2312>
<TITLE>Menú en cascada</TITLE>
<ENLACE rel=tipo de hoja de estilo=texto/css href=estilo.css>
</CABEZA>
<!--Obtener información de la columna secundaria de la base de datos-->
<%String sql=select * del orden Nclass por NclassId asc;
Conjunto de resultados rs=stmt.executeQuery(sql);
%>
<!--Guarde la información de la columna secundaria en la matriz subcat-->
<tipo de script=texto/javascript>
var un recuento;
una cuenta=0;
subcat = nueva matriz();
<%
recuento int = 0;
mientras(rs.siguiente()){
%>
subcat[<%=count%>] = nueva matriz(<%=rs.getString(NclassName)%>,
<%=rs.getString(NclassId)%>,<%=rs.getString(parentId)%>);
<%
contar++;
}
rs.cerrar();
%>
onecount=<%=count%>;
<!--Función que determina la visualización seleccionada-->
función cambiar ubicación (ubicaciónid)
{
document.myform.NclassId.length = 0;
var ubicaciónid=ubicaciónid;
var i;
para (i=0;i < una cuenta; i++)
{
si (subcat[i][2] == ID de ubicación)
{
document.myform.NclassId.options[document.myform.NclassId.length] = nuevo
Opción(subcat[i][0], subcat[i][1]);
}
}
}
</script>
<Método FORM=POST nombre=miformulario acción=adminsave.jsp?action=add>
<TABLA>
<TR>
<TD>Clasificación de primer nivel</TD>
<TD>
<SELECCIONAR nombre=classId onChange=cambiar ubicación(document.myform.classId.options
[document.myform.classId.selectedIndex].valor) tamaño=1>
<OPCIÓN valor seleccionado>==Por favor seleccione una categoría de primer nivel==</OPCIÓN>
<sql:consulta var=consulta fuente de datos=$>
SELECCIONAR * DE la clase
</sql:consulta>
<c:forEach var=elementos de fila=$>
<valor de opción=$>$</opción>
</c:paraCada>
</seleccionar>
</TD>
<TD>Seleccione una categoría secundaria</TD>
<TD>
<SELECCIONAR nombre=NclassId>
<OPCIÓN valor seleccionado>==Por favor seleccione la categoría de segundo nivel==</OPCIÓN>
</SELECCIONAR>
</TD>
</TR>
</TABLA>
</FORM>
</CUERPO>
</HTML>