La Web del Programador: Comunidad de Programadores
 
    Pregunta:  6215 - COMBOS DINAMICOS
Autor:  jaime caballero
Mi problema es que debo crear 3 combos y en función de lo que elija en el 1º, me debe aparecer en el 2º combo una cosa u otra en función de la 1ª eleccion.Lo mismo entre el 2º y 3º combo. Si alguien conoce el código agradecería me lo remitiesen.Gracias

  Respuesta:  felipe kamikazi
<HTML>
<HEAD>
<TITLE>Listas dependientes</TITLE>
</HEAD>
<BODY>
<!--
Listas dependientes --->

<H2><CENTER>Listas dinámicas dependientes</CENTER></H2>
<P><B>Elige una categoría para ver los productos pertenecientes a ella:</B>
<P>
<FORM NAME="Listas" METHOD="POST" ACTION="receive.asp">
<B>Categorías</B>
<SELECT NAME="Categorias" SIZE="1"
OnChange="ComponerLista (document.forms.Listas.Categorias[selectedIndex].value);">
<%
Dim oConn, rs, SQL, cuenta, categoria

set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ejemplo.mdb")

SQL="SELECT * FROM Categorias"
rs.Open SQL, oConn
cuenta=1
while not rs.EOF
%>
<OPTION VALUE="<%=rs.Fields("IdCategoria")%>"
<% if cuenta=1 then%>
SELECTED
<%end if%>>
<%=rs.Fields("NomCategoria")%></OPTION>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</SELECT>
<P><B>Productos</B>
<SELECT NAME="Productos" SIZE="1">
</SELECT>
<P><INPUT TYPE="submit"></FORM>

<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 Productos ORDER BY Categoria, IdProducto"
rs.Open SQL, oConn
cuenta=0
cat="basura"
while not rs.EOF
if cat<>rs.Fields("Categoria") then
' cambio de categoria, empiezo a contar en 0
cuenta=0
cat=rs.Fields("Categoria")
'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("Nombre")%>","<%=rs.Fields("IdProducto")%>");

<%
cuenta=cuenta+1
rs.MoveNext
wend
%>

<%
'Limpiamos objetos
rs.Close
set rs=nothing
oConn.Close
set oConn=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.Productos.options[contador] = optionObj;
} // for
} // ComponerLista

function BorrarLista() {

Listas.Productos.length=0;
}

//Inicializamos
ComponerLista (1);

-->
</SCRIPT>
<br>
</FORM>

</BODY>
</HTML>

mira la que puedo ayudar esta es lista dependientes con dos combos de algo te puede ayudar copialo tal cual las tablas son Categorias ( Idcategoria , NomCategoria) Productos (IdProducto, Categoria, Nombre)
funciona el unico de todos los que encontre que funciona

  Respuesta:  Alvaro Ortiz
visita la siguiente página... ahi viene un ejemplo de lo que necesitas..

www.wsabstract.com

es codigo de JScript..

si se puede hacer, a partir de ese ejemplo lo puedes hacer..
de cualquier forma si necesitas ayuda escribeme

saludos