Hola a todos, antes de preguntar he mirado en el foro a ver si encontraba alguna solución. Quiero hacer 3listas dinamicas, encontrado con 2 y el código es este que encontrado en el foro. Lo que nose como hacer con 3listas y por más que he buscado e intentado no consigo la solución. Si alguien me pudiese ayudar lo agradecería.
Código HTML:
<tr>
<td>secciones:
<SELECT NAME="Secciones" SIZE="1"
OnChange="ComponerLista (document.forms.Listas.Secciones[selectedIndex].value);">
<%
Dim oConn, rs, SQL, cuenta, categoria
SQL="SELECT * FROM SECCIONES"
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open SQL, my_conn, 3
cuenta=1
while not rs.EOF
%>
<OPTION VALUE="<%=rs.Fields("COD")%>"
<% if cuenta=1 then%>
SELECTED
<%end if%>>
<%=rs.Fields("TITULO")%></OPTION>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</SELECT>
</td></tr>
<tr>
<td>
<P><B>Productos</B>
<SELECT NAME="Posicion" SIZE="1">
</SELECT>
<P><INPUT TYPE="submit">
<SCRIPT LANGUAGE="Javascript">
<!--
function Tupla ( campo1, campo2 )
{
this.campo1 = campo1;
this.campo2 = campo2;
}
<%
'Vamos a crear nuestros arrays de productos desde ASP
'El primer if detecta un cambio en la categoría para
'crear un nuevo array en Javascript
SQL="SELECT * FROM Posicion ORDER BY Seccion, des"
rs.Open SQL, my_conn
cuenta=0
cat="basura"
while not rs.EOF
if cat<>rs.Fields("seccion") then
' cambio de categoria, empiezo a contar en 0
cuenta=0
cat=rs.Fields("seccion")
'además tengo que crear un nuevo array para la categoría
%>
var opciones<%=cat%> = new Array();
<%
end if
%>
opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rs.Fields("des")%>","<%=rs.Fields("codposicion")%>");
<%
cuenta=cuenta+1
rs.MoveNext
wend
%>
<%
'Limpiamos objetos
rs.Close
set rs=nothing
my_conn.Close
set my_conn=nothing
%>
var contador;
function ComponerLista ( array ) {
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
BorrarLista();
array = eval("opciones" + array);
for (contador=0; contador<array.length; contador++)
{
// añade elementos nuestro combobox
var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
Listas.Posicion.options[contador] = optionObj;
} // for
} // ComponerLista
function BorrarLista() {
Listas.Posicion.length=0;
}
//Inicializamos
ComponerLista (1);
-->
</SCRIPT>
</td></tr>
Muchas gracias.Saludos