Foros del Web » Programando para Internet » Javascript »

¿Campo de texto o select en función de la opción elegida en otro select?

Estas en el tema de ¿Campo de texto o select en función de la opción elegida en otro select? en el foro de Javascript en Foros del Web. Hola!! He estado revisando la FAQ y probando alguna cosiya pero no consigo que me funcione. Estoy haciendo un buscador de personas. La cuestión es ...
  #1 (permalink)  
Antiguo 24/05/2007, 06:05
 
Fecha de Ingreso: abril-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
Pregunta ¿Campo de texto o select en función de la opción elegida en otro select?

Hola!!

He estado revisando la FAQ y probando alguna cosiya pero no consigo que me funcione.

Estoy haciendo un buscador de personas. La cuestión es que tengo un select para poder elegir si buscar la persona por DNI, nombre o sexo. Al lado tengo un campo de texto para introducir los datos a buscar y un boton buscar:

Código HTML:
<html>
 <head>
  	<title>Buscar persona</title>		
 </head>
 <body>

	<table>
	<tr>
	<td width=12%>
	<select name="busqueda">
	<option value="1">DNI</option>
	<option value="2">Nombre</option>
	<option value="3">Sexo</option>
	</select>
	</td>
	<td>
	<input type="text" name="parametro" size="37">
	</td>
	<td>
	<input type=button value="Buscar">
	</td>
	</tr>
	</table>
	</form>
	
 </body>
</html> 
La cuestión es que quiero que cuando en el select se seleccione DNI o nombre, este el campo de texto para meter los datos a buscar, pero cuando la opcion seleccionada sea sexo el campo de texto será sustituido por otro select donde las opciones sean hombre o mujer.

Espero haberme explicado bien y que me podais ayudar.
Gracias de antemano y un saludo
  #2 (permalink)  
Antiguo 24/05/2007, 12:11
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: ¿Campo de texto o select en función de la opción elegida en otro select?

Puedes tener los campos DNI, nombre y el select sexo en una capa oculta, y cuando se seleccione su debida opción, forzar ocultar todas y mostrar únicamente la correspondiente.

Supongo que es más fácil que añadir elementos dinámicamente.

Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 28/05/2007, 07:05
 
Fecha de Ingreso: abril-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
Re: ¿Campo de texto o select en función de la opción elegida en otro select?

Gracias por responder derdenuke.
Pero no se como se hace lo que me dices. Me imagino que tendre que colocar un div en el html para crear la capa oculta. Pero como haria luego para hacer que esa capa este oculta y se muestre la capa correspondiente al elegir en el select.

Saludos
  #4 (permalink)  
Antiguo 29/05/2007, 13:27
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: ¿Campo de texto o select en función de la opción elegida en otro select?

Bueno, veamos.

En principio no pensaba hacerte todo el ejemplo entero pero me he puesto y al final...

Código PHP:
<select onchange="cambiarCapa(this)">
    <
option>-</option>
    <
option>a</option>
    <
option>b</option>
    <
option>c</option>
</
select>

<
div id="capa1" style="display:none;"
    <
input type="text" /> 
</
div>
<
div id="capa2" style="display:none;"
    <
select>
        <
option>1</option
        <
option>2</option>
        <
option>3</option>
    </
select>
</
div>
<
div id="capa3" style="display:none;"
    <
input type="radio" name="radios" /> Uno <br/>
    <
input type="radio" name="radios" /> Dos <br/>
    <
input type="radio" name="radios" /> Tres <br/>
</
div>


<
script>

function 
cambiarCapa(elSelect) {
    var 
idCapaAmostrar;
    
//escogemos la que nos interesa
    //según el texto de la opcion seleccionada del select
    
switch( elSelect.optionselSelect.options.selectedIndex ].text ) {        
        case 
"a":
            
idCapaAmostrar="capa1";
        break;
        case 
"b":
            
idCapaAmostrar="capa2";
        break;
        case 
"c":
            
idCapaAmostrar="capa3";
        break;
    }
    var 
lasCapas=["capa1","capa2","capa3"];
    for(var 
i in lasCapas)                                                //ocultamos todas
        
document.getElementById(lasCapas[i]).style.display="none";
    if(
idCapaAmostrar!=undefined)
        
document.getElementById(idCapaAmostrar).style.display="block";        //mostramos la que nos interesa
}

</script> 

Podría ser así.

Si tienes dudas me dices.



Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 01/06/2007, 06:10
 
Fecha de Ingreso: abril-2007
Mensajes: 33
Antigüedad: 17 años
Puntos: 0
Re: ¿Campo de texto o select en función de la opción elegida en otro select?

Muchas gracias por responder!!
Ya lo he hecho y funciona.

Un saludo y gracias de nuevo
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 05:50.