Foros del Web » Programando para Internet » Javascript »

Selected en selects dependientes

Estas en el tema de Selected en selects dependientes en el foro de Javascript en Foros del Web. Hola a todos, Tengo una pequeña pelea desde hace unos cuantos días con los selects dependientes con bdd, parece que vamos empate, aun tengo un ...
  #1 (permalink)  
Antiguo 19/08/2004, 10:08
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Selected en selects dependientes

Hola a todos,

Tengo una pequeña pelea desde hace unos cuantos días con los selects dependientes con bdd, parece que vamos empate, aun tengo un problema a ver si vosotros me podeis ayudar..

En un formulario tengo un select que recoge valores de un campo de una base de datos y dependiendo de lo que se seleccione el otro select se modifica con otro campo de la base de datos. Esto lo he querido hacer sin recargar la página así que he implementado esto en el formulario:

Código:
//PRIMER SELECT 

<select name="Tipo" size="1" id="Tipo" onchange="if ((document.Nueva_Ficha.Tipo.value != 'SELECCIONE') && (document.Nueva_Ficha.Tipo.value != '-'))  parent.Funcion.location.href='Funcion.php?id=' + this.value"> 
<option name="SELECCIONE" value="SELECCIONE">SELECCIONE ...</option> 
<option name="-" value="-">----------------------------</option> 
<? while ($Tipo = mysql_fetch_array($Resul_Tipo)) 
    if ($Tipo['Id_Tipos'] == $Inmueble['Id_Tipos']) 
    { print "<option name='$Tipo[Id_Tipos]' value='$Tipo[Id_Tipos]' selected>$Tipo[Descripcion]</option>"; } 
    if ($Tipo['Id_Tipos'] != $Inmueble['Id_Tipos']) { print "<option name='$Tipo[Id_Tipos]' value='$Tipo[Id_Tipos]'>$Tipo[Descripcion]</option>"; } ?></select>   

//SEGUNDO SELECT 

<select name="Subtipo" size="1"> 
</select>
Y esto en un frame:

Código:
<script language="javascript"> 
<? if ($id != "") { ?> 
    var combo=parent.Nueva_General.document.getElementById("Subtipo"); 
    while (combo.length > 0) 
    { 
    combo.options[0]=null; 
    } 
    <? 
    include ("../Public/conexion.php"); 
    $Resul_Subtipo = mysql_query ("Select Id_Subtipos,Descripcion from Subtipos where Id_tipos=$id order by Descripcion"); 
    $Registros =mysql_num_rows ($Resul_Subtipo); 
     
    while ($Subtipo = mysql_fetch_array($Resul_Subtipo)) 
    { ?> 
    op=new Option(); 
    op.value='<? print $Subtipo[Id_Subtipos] ?>'; 
    op.text= '<? print $Subtipo[Descripcion] ?>'; 
    combo.options[combo.length] = op; 
<? } } ?> 
</script>
Vale hasta aquí todo funciona como es debido, mi problema es que ahora quiero que me seleccione el opction del select 2º ("selected") que corresponda a un valor que saca de la base de datos, pongamos que es $Inmueble[Subtipo].

Como podría hacerlo? Es posible? Me he explicado bien?

Necesito ayuda...
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #2 (permalink)  
Antiguo 19/08/2004, 11:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Enea:

Antes conseguía ese cometido recorriendo las opciones del select y poner el "encontrado" con selected = true...

function marcar(selector, dato) {
for (var i = 0; i < selector.options.length; i ++)
if (selector.options[i].value == dato) selector.options[i].selected = true;
}

Ahora encontré una forma mucho más fácil, y es asignando al campo value del elemento select el value deseado:

<html>
<head>
<script>
function actuar() {
document.forms.formulario.optar.value = document.forms.formulario.dato.value
}
</script>
</head>
<body>
<form name="formulario" action="javascript: void(false);" onsubmit=actuar() >
<select name="optar" >
<option value="d1" >dato 1</option>
<option value="d2" >dato 2</option>
<option value="d3" >dato 3</option>
<option value="d4" >dato 4</option>
</select>
<input type="text" name="dato" value="d2" />
<input type="submit" value="actuar" />
</form>
</body>
</html>

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 20/08/2004, 02:25
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 10 meses
Puntos: 0
Muchas gracias caricatos,

He aplicado tu primera manera de hacerlo y me ha ido genial... muchisimas gracias !

Hasta pronto!
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #4 (permalink)  
Antiguo 20/08/2004, 03:38
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

En resúmen, las 2 opciones serían:

function marcar(selector, dato) {
for (var i = 0; i < selector.options.length; i ++)
if (selector.options[i].value == dato) selector.options[i].selected = true;
}

y...

function marcar(selector, dato) {
selector.value = dato;
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 07:33.