Código:
saludos.<FORM NAME="Tiendas" METHOD="POST" ACTION="tiendasbuscar.asp"> <p class="txt_contenido"> <SELECT NAME="Provincias" SIZE="1" OnChange="ComponerLista (document.forms.Tiendas.Provincias[selectedIndex].value);" class="cajetin"> <option selected value="- Elegir provincia -">- Elegir provincia -</option> <% Dim SQL, cuenta, categoria Set Cn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") Cn.Open "DSN=dominio.com.tiendas" SQL="SELECT * FROM Provincias" rs.Open SQL, Cn cuenta=1 while not rs.EOF %> <OPTION VALUE="<%=rs.Fields("IdProvincia")%>"><%=rs.Fields("NombreProvincia")%></OPTION> <% rs.MoveNext cuenta=cuenta+1 wend rs.Close %> </SELECT> <SELECT NAME="Poblacion" SIZE="1" class="cajetin"> </SELECT> <a href="javascript:document.Tiendas.submit();"><img src="imgs/BAceptar.gif" alt="Aceptar" border="0"></a> <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 Tiendas ORDER BY Poblacion asc" rs.Open SQL, Cn cuenta=0 cat="basura" while not rs.EOF if cat<>rs.Fields("Provincia") then ' cambio de categoria, empiezo a contar en 0 cuenta=0 cat=rs.Fields("Provincia") '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("Poblacion")%>","<%=rs.Fields("Provincia")%>"); <% cuenta=cuenta+1 rs.MoveNext wend %> <% 'Limpiamos objetos rs.Close set rs=nothing Cn.Close set Cn=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 ); Tiendas.Poblacion.options[contador] = optionObj; } // for } // ComponerLista function BorrarLista() { Tiendas.Poblacion.length=0; } //Inicializamos ComponerLista (1); --> </SCRIPT> <br></p> </FORM>
muchas gracias.