Soy una persona B y no sé cómo usar videos para resolver el problema, así que tengo que usar mis palabras confusas para escribir.
En circunstancias normales, esta situación es útil para directorios secundarios. Hay muchos tipos de JS circulando en los sitios web ahora, pero no son más que esos códigos JS que confunden a personas como yo. . Todos a la vez para... todos a la vez matriz.
Sin más, vayamos al grano.
Primero debe crear una tabla. Por supuesto, si el directorio ya se creó en su tabla, este paso se puede omitir. Pero hay una cosa que recordarles: esta tabla es la base de mi ejemplo (no sé si es correcto).
Dado que la tabla que uso es ACCESS, no entraré en la creación de la tabla, solo enumeraré los nombres de los campos correspondientes de estas dos tablas (nombre de la base de datos: db.mdb):
Nombre de la tabla: type_tree - Campo de clase principal: type_id (número automático) type_name (nombre de categoría)
Nombre de la tabla: s_type - Campo de subclase: id (número automático) s_name (nombre de subcategoría) type_id (ID de clase principal) - y correspondiente a la clase principal tabla,
la conexión de la base de datos ahora está establecida:
Dim conn, connStrSet conn = server.CreateObject("ADODB.Connection")connStr = "Provider = Microsoft.jet.oledb.4.0;"connStr = connStr & "Data Source = " & server .mappath("db.mdb")Conn.Abrir connStr
No debería ser necesario explicar los códigos anteriores, todos son códigos de uso común. .
Ahora a la acción real :)
Los menús contextuales secundarios generalmente se crean con menús desplegables, y yo no soy una excepción aquí, y también uso menús desplegables para crearlos.
Pero hay una cosa que es diferente aquí.
Se utiliza un menú de salto. ¡Esto es muy importante! El éxito depende enteramente de si el menú se utiliza correctamente.
¡A continuación se muestra el código para este menú de salto!
<seleccione nombre="primero" onChange="MM_jumpMenu('parent',this,0)">
<%
sql = "seleccione [type_id],[type_name] de [type_tree]"
set rs = conn.execute(sql)'Obtener el ID y el nombre de la clase principal
si rs.eof o rs.bof entonces
Response.write "<option>-----</option>" 'Si no hay ningún registro, muestra -----
demás
while not(rs.eof o rs.bof) 'Si hay un registro, indique el nombre del padre para formar un menú desplegable.
respuesta.write ("<opción valor='?sec=" & rs(0) & "'")
si cstr(rs(0)) = request.querystring("sec") entonces
respuesta.escribir "seleccionado"
terminar si
respuesta.write (">" & rs(1) & "</option>")
rs.movenext
encaminarse a
rs.movefirst 'Mueve el cursor al primer elemento para su uso posterior.
terminar si
%>
</seleccionar>
Ah, por cierto, hay otro fragmento de código que olvidé publicar. Esta es la clave para saltar al menú. ¡Mira mi descuido!
Agregar para agregar:
<script idioma="JavaScript" tipo="texto/JavaScript">
<!--
función MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
si (restaurar) selObj.selectedIndex=0;
}
//-->
</script>
El código anterior se pega en <head> y lo genera DW. No entiendo muy bien lo que significa, así que no lo comentaré :D.
Ahora es la parte secundaria del menú. Este no es un menú de salto, es solo una lista, por lo que la única diferencia entre el código y el menú de salto de arriba es la función de cambio.
El siguiente es el código de este menú. Dado que el bucle y el juicio son más complicados que los anteriores, todos deberían leerlo con claridad.
<seleccione nombre="segundo">
<%si rs.eof o rs.bof entonces
respuesta.write ("<opción>--------</opción>")
demás
si request.querystring("sec") = "" entonces 'Obtiene el valor de segundos después del salto
temp=rs(0) Si está vacío, establezca el valor de temp al valor del primer registro
demás
temp = request.querystring("sec") 'De lo contrario será el valor recibido
terminar si
subsql = "seleccione [s_name] de [s_type] donde type_id='"&temp&"'"
set subrs = conn.execute(subsql) 'Enumera todos los registros cuyos datos son temporales
si subrs.eof o subrs.bof entonces
respuesta.write ("<opción>-----</opción>")
'Si no hay ningún registro, muestra "-----" en esta lista
demás
while not(subrs.eof o subrs.bof)' De lo contrario, utilice un bucle para enumerar todos los registros que cumplan las condiciones.
respuesta.write ("<opción valor=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movenext
encaminarse a
terminar si
finalizar si
'Cerrar todos los conjuntos de registros
subrs.cerrar
establecer subrs = nada
rs.cerrar
setrs=nada
con.cerrar
establecer conexión = nada
%>
</select>
Hasta ahora el proceso de creación de este menú secundario ha sido completado. Es muy sencillo como te expliqué.
Si no entiendes, deja de hablar. De todos modos, ya no sé qué decir.
Los expertos están dispuestos a darte consejos.