Foros del Web » Programando para Internet » ASP Clásico »

Doble Combo Box Dinámico

Estas en el tema de Doble Combo Box Dinámico en el foro de ASP Clásico en Foros del Web. Hola Estoy haciendo dos combo box dinámicos, los cuales no tienen opciones fijas sino generadas a partir de información de la base de datos. El ...
  #1 (permalink)  
Antiguo 14/11/2005, 22:25
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 20 años, 5 meses
Puntos: 0
Doble Combo Box Dinámico

Hola

Estoy haciendo dos combo box dinámicos, los cuales no tienen opciones fijas sino generadas a partir de información de la base de datos. El primero se llena con campos de la base de datos a través de una consulta realizada a la misma (en eso estoy bien), el segundo debe llenarse con información de la BD, según el campo elegido en el primer combo box, allí es donde está mi problema, pues no sé como tomar el dato que está en el primer combo box para realizar la consulta a la bd.

He buscado información, pero no he conseguido una con que pueda solventar el problema, aparece información de combo box dinámicos pero con opciones ya definidas en funciones javascript. También he tratado de captar el valor del primer combo box con una función javascript, pero no sirve, pues no se pueden pasar variables de javascript a asp, ya que asp es el se ejecuta primero.

Si alguien ha hecho algo similar o tiene alguna idea, agradezco pueda publicarla aquí, por favor.

Saludos
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
  #2 (permalink)  
Antiguo 15/11/2005, 08:12
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
http://www.asptutor.com/asp/vart.asp?id=102

checa ese
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 15/11/2005, 08:16
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
También he tratado de captar el valor del primer combo box con una función javascript ...
Pues si, así es precisamente como lo debes hacer, a menos claro que hagas una llamada al servidor por cada selección en el primer combo.
El chiste es crearte un arreglo en javascript con la información del segundo combo colocando como índice la clave del primero (que es lo que capturaras en el evento OnChange del primero), luego, tambien con JS, vaciaras el segundo y lo llenaras con el contenido del arreglo.

Mira, en las FAQ's, esta un ejemplo con la macánica que te comento. Aunque si estudias los ejemplos que ya tienes con valores fijos, verás que la idea es esa misma.

Si despues de revisar esto, aún necesitas ayuda con el código, pues nos dices y listo.

Saludos
  #4 (permalink)  
Antiguo 16/11/2005, 00:20
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 20 años, 5 meses
Puntos: 0
Gracias a JuanRAPerez por el link bastante bueno y a Myakire.
Logré hacerlo pero no me hace ningún efecto, a ver que pueden observar ustedes que esté mal. Saludos.

...
<head>
<script language = "JavaScript">
<% Set conexion = Server.CreateObject("ADODB.Connection")
conexion.open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\base_datos.mdb"))
sql = "select titulo from contenido"
set rs = conexion.execute(sql) %>

////////////////// FUNCION COMBO BOX DINÁMICO

function sublist(inform, selecteditem)
{
inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>

x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=(rs("titulo"))%>";
subcat[x,0] = subcatagorys;
<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}

</script>
</head>


<body>
<table>
<form name="formu2" >

<% sql = "select distinct nombre_curso from contenido"
set rs2 = conexion.execute(sql)%>

<tr>
<td align="left" width="150">Seleccionar curso:
</td>
<td align="left" width="170"><SELECT NAME="selecurso" SIZE = "1" STYLE ="Width:265px" onChange = "javascript:sublist(this.form, selecurso.value);">
<OPTION>Seleccione uno</option>
<% do while rs2.eof=false%>
<OPTION><%=RS2("nombre_curso")%></option>
<%
rs2.movenext
loop%>
</td>
</SELECT>

<tr>
<td align="left" width="150">Título:
</td>
<td align="left" width="170"><SELECT id="subcatagory" name="subcatagory"SIZE = "1" STYLE ="Width:265px" disabled>
<Option selected value="none"></option>
</td>
</SELECT>

<INPUT NAME="boton" TYPE="submit" VALUE="Eliminar"></center>
</form>
<%conexion.close
set rs = nothing
set rs2 = nothing%>

....
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
  #5 (permalink)  
Antiguo 16/11/2005, 05:33
TaM
 
Fecha de Ingreso: noviembre-2005
Mensajes: 58
Antigüedad: 19 años, 5 meses
Puntos: 0
Yo en vez de hacer eso, haría que en el onChange del combo, llamara de nuevo a tu pagina pasandole el identificador de la opcion seleccionada y en el segundo combo mostrar los datos correspondientes a ese identificador.
  #6 (permalink)  
Antiguo 16/11/2005, 17:39
 
Fecha de Ingreso: octubre-2004
Ubicación: Venezuela
Mensajes: 111
Antigüedad: 20 años, 5 meses
Puntos: 0
Ahora lo coloque asi, pero igual no hace nada de efecto en el 2do combox

<script language = "JavaScript">



<%'CONSULTA PARA OBTENER LOS DATOS
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\base_datos.mdb"))

productos_Sql = "Select distinct titulo from contenido" 'consulta 2d0 combobox
set rs = CreateObject("ADODB.Recordset")
rs.Open productos_Sql, Conn
x=0
%>

// FUNCION DE COMBO BOX COMBINADO

function sublist(inform, selecteditem)
{
inform.subcatagory.length = 0

<%
count= 0
y=0
do while not rs.eof
%>

x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=rs("titulo")%>";
subcatagoryof = "<%=rs("titulo")%>";
subcatagoryid = "<%=rs("titulo")%>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;
if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
}
<%
count = count + 1
y = y + 1
rs.movenext
loop
rs.close
%>
}

</script>



</head>

<body bgcolor="#CDB1B7">
<h2 align="center"><b><i><font color="#AE1732"><u>Combo-box enlazados </u></font></i></b></h2>
<form name="prueba">
<div align="center">
<center>
<table border="0" width="80%">
<tr>

<td width="77%">
<select size="1" id="familia" name="familia" onChange = "javascript:sublist(this.form, familia.value);">

<option selected>Selecciona una familia</option>
<%familias_Sql = "Select distinct nombre_curso from contenido"
rs.Open familias_Sql, Conn
do while not rs.eof
%>
<option value="<%=rs("nombre_curso")%>"><%=rs("nombre_curs o")%></option>
<%rs.movenext
loop
set rs=nothing
conn.close
set conn=nothing%>
</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp; <SELECT id="subcatagory"

name="subcatagory" size="1">
<Option selected value="none"></option>
</SELECT></td>
<td width="9%">
<p align="left">

</p>

</td>
</tr>
</table>
</center>
</div>
<center>
</form>
</center>
</body>
</html>
__________________
Has resucitado mi :corazon: que estaba muerto y sin salvación
  #7 (permalink)  
Antiguo 17/11/2005, 10:04
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 19 años, 6 meses
Puntos: 1
Aporte de Ejemplos

Gente:

Parce que el tema de las listas/combos enlazados nos interesa a varios(sera porque se usan mucho?), en mi post(http://www.forosdelweb.com/f15/menu-desplegable-carga-dinamica-desde-bd-348520/) ,hay un ejemplo(el ultimo) que sirve cuando los datos del 2do.Combo son muchos, por lo que NO conviene cargar primero TODOS y despues solo mostrar los que coinciden con la opcion del Combo1.

Lamentablemente aun no lo hice funcionar, asi que si alguien puede aportar un poco mas, vamos a obtener un ejemplo de listas dependientes mucho mas dinamico(la pagina carga +rapido), para manejar grandes cantidades de datos.

Saludos y vamos por un combo, modelo 2005 !
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
  #8 (permalink)  
Antiguo 17/05/2006, 23:10
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 19 años, 6 meses
Puntos: 1
Información Documentar

Ante todo una aclaracion: me puse a ver todos mis post y me encontre con que habia varios que quedaron inconclusos(aunque ya fueron solucionados en su tiempo de publicacion), entonces decidi cerrar todos mis post, es decir a lo largo de todo este tiempo fui aprendiendo con ustedes(entre otras fuentes), y me parecio etico aportarles un poco de orden para que estos post sirvan a otra gente.

Esto lo solucione asi: ver rta de otro post mio (Multiples Listas Dependientes ...)
http://www.forosdelweb.com/f15/multiples-listas-dependientes-no-anda-378361/

Espero les haya sido util,
Saludos
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:58.