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

trabajar con select (lista desplegable)....

Estas en el tema de trabajar con select (lista desplegable).... en el foro de ASP Clásico en Foros del Web. hola... tengoun problemita... tengo dos select uno que se llena con la db y el segundo depende de la selecion del primero.... ahora cuando seleciono ...
  #1 (permalink)  
Antiguo 03/05/2006, 19:42
 
Fecha de Ingreso: mayo-2005
Mensajes: 117
Antigüedad: 19 años
Puntos: 0
trabajar con select (lista desplegable)....

hola...

tengoun problemita...
tengo dos select uno que se llena con la db y el segundo depende de la selecion del primero.... ahora cuando seleciono un elemento del segundo select y se recarga la pagina el primer select vuelbe asu estado inicial osea que pierde al seleccion que le habia dado...
como puedo mantener el selected index del primer select al recargar la pagian .....??? ...

espero me explique :S

agradesco su timepo... saludos
  #2 (permalink)  
Antiguo 04/05/2006, 02:56
Avatar de gorka_arai  
Fecha de Ingreso: octubre-2005
Mensajes: 281
Antigüedad: 18 años, 7 meses
Puntos: 1
1 .- cargas la página y llenas el primer combo
2 .- cuando tu usuario seleccione un item del combo (onChange), recargas la página mandando el identificador del item escogido.
3 .- vuelves a llenar el combo principal pero seleccionando el item escogido. Llenas el segundo combo usando para la consulta el identificador del combo principal.
  #3 (permalink)  
Antiguo 16/05/2006, 17:50
 
Fecha de Ingreso: mayo-2005
Mensajes: 117
Antigüedad: 19 años
Puntos: 0
1 y 2 entendidos...

ok 1 y 2 estan entendidos ...

pero el 3 como indicas cual va a ser el elemento qeu se tiene que selecionar de que manera selectedIndex??

gracias por tu tiempo..

....rahd
  #4 (permalink)  
Antiguo 17/05/2006, 05:03
 
Fecha de Ingreso: abril-2006
Ubicación: Bizkaia
Mensajes: 70
Antigüedad: 18 años, 1 mes
Puntos: 0
Aupa rahd_rr,

haber si te sirve este ejemplo

'Coges el valor de la 1ª select

valor_select1 = request("nombre_select1")

'Y luego cuando quieras que tenga ese valor, una vez este llena la select con los datos de la BBDD
(javascript)
window.document.form.nombre_select.value = '<%= valor_select1 %>';

despues de andar mirando he comprobado q, para que te quede señalado el <option> tiene que tener el value = al que recoges

Última edición por GauTxori; 17/05/2006 a las 07:29
  #5 (permalink)  
Antiguo 17/05/2006, 07:09
Avatar de aurelitus  
Fecha de Ingreso: marzo-2006
Mensajes: 59
Antigüedad: 18 años, 3 meses
Puntos: 0
Puede que te sirva este codigo

Pero tengo un problema y es que no se como hacer para que queden las dos listas con la selección...de hecho voy a proponer este tema a ver si alguien me ayuda...por lo pronto te puede servir...

'inicio la lista desplegable <SELECT NAME="SUCURSALES" SIZE="1"
OnChange="ComponerLista (document.forms.Listas.SUCURSALES[selectedIndex].value);">
<%

'abro las conexiones y los recordsets

set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
set rs1=Server.CreateObject("ADODB.Recordset")
set oConnLOG=Server.CreateObject("ADODB.Connection")
set rslog=Server.CreateObject("ADODB.Recordset")


oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("basededatos.mdb")

SQL="SELECT lo que necesites mostrar from la tabla que necesites mopstrar"

rs.Open SQL, oConn
cuenta=1
%>
<OPTION >Seleccione una Sucursal...</option>
<%
'aqui yo presento sucursales - xsuc es la variable que guarda el valor de la 'sucursal elegida
while not rs.EOF
%>
<OPTION VALUE="<%=rs.Fields("SUC")%>"
<% if rs.Fields("SUC")= XSUC then%>
SELECTED

<%end if%>><FONT SIZE=1>

<%=rs.Fields("DESCSUC")%></FONT></OPTION>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</SELECT>
'inicio la lista de oficinas que dependen de las sucursales

<B>OFICINAS</B>
<br>
<SELECT NAME="OFICINAS" SIZE="1">

</SELECT>

<B></B>

<tr>
<td>


<tr>
<td>
<INPUT TYPE="submit" value="Consultar"></FORM>
'este script me llena la segunda lista dependiendo del valor de la sucursal 'seleccionada anteriormente. alguna vez lo copie de las FAQ's creo...
<SCRIPT LANGUAGE="Javascript">
<!--
function Tupla ( campo1, campo2 )
{
this.campo1 = campo1;
this.campo2 = campo2;
}

<%
'ARREGLO PARA LISTA DE SUCURSALES
'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 DISTINCT LOCALIDADES.[Codigo Oficina Comercial] AS SUC, LOCALIDADES.[Descripcion Oficina Comercial] AS DESCSUC, LOCALIDADES.[Codigo Agencia] AS OFI, LOCALIDADES.DescABRV AS DESCOFI FROM METAS LEFT JOIN LOCALIDADES ON METAS.LOCALIDAD = LOCALIDADES.[Codigo Agencia] ORDER BY LOCALIDADES.[Codigo Oficina Comercial]"
rs.Open SQL, oConn
cuenta=0
contador="basura"
while not rs.EOF
if contador<>rs.Fields("SUC") then
' cambio de categoria, empiezo a contar en 0
cuenta=0
contador=rs.Fields("SUC")
'además tengo que crear un nuevo array para la categoría
%>
var opciones<%=contador%> = new Array();
<%
end if
%>
opciones<%=contador%>[<%=cuenta%>]=new Tupla("<%=rs.Fields("DESCOFI")%>","<%=rs.Fields("O FI")%>");

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


<%
'Limpiamos objetos
rs.Close
set rs=nothing
set rs1=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.OFICINAS.options[contador] = optionObj;

} // for
} // ComponerLista


function BorrarLista() {

Listas.OFICINAS.length=0;
}

//Inicializamos
ComponerLista (1);


A mi me funciona bien, pero como te dije las listas no mantienen su valor seleccionado....voy a crear un tema nuevo a ver si alguien se interesa y me ayuda....
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 11:39.