Foros del Web » Programando para Internet » Javascript »

Q: Combos vinculados, ocultar/mostrar elementos del segundo.

Estas en el tema de Q: Combos vinculados, ocultar/mostrar elementos del segundo. en el foro de Javascript en Foros del Web. Buenos días forer@s! Llevo poco tiempo en esto de la informática y he pasado algunas veces por aquí para aclarar algunas cosas, pero javascript se ...
  #1 (permalink)  
Antiguo 18/04/2010, 04:11
 
Fecha de Ingreso: abril-2010
Mensajes: 19
Antigüedad: 14 años, 7 meses
Puntos: 0
Q: Combos vinculados, ocultar/mostrar elementos del segundo.

Buenos días forer@s!

Llevo poco tiempo en esto de la informática y he pasado algunas veces por aquí para aclarar algunas cosas, pero javascript se me ha convertido en un mundo nuevo. Necesito resolver un asunto con un formulario y ya tengo varias opciones vistas pero no me gustan.

Es, por así decir, el típico caso de los dos combos que según selecciones en el primero aparecen opciones en el segundo, tipo comunidad autónoma // provincia.

He visto lo del z-position y lo del hide. Pero eso sólo se aplica a combos enteros. También hay otro muy sencillo que trata de hacer arrays en js, pero no me sirve porque en mi caso serían arrays muy largos.

A mi me gustaría algo que ocultase todos los elementos del segundo combo y mostrase los que tuviesen relación con el primer combo. Además de que las opciones de ambos deben ser cargadas desde base de datos.

El código que de momento tengo sería:

Código:
<?
//origen
$query = "SELECT * FROM origen";
$Corigen = mysql_query ($query) or die(mysql_error());

//detalle origen
$query = "SELECT * FROM detalle_origen";
$Cdet_origen = mysql_query ($query) or die(mysql_error());
?>



<div class="origen_documento">
	<p>ORIGEN:
    	<select name="origen" onchange="escoge()">
		<option value="0">(Por favor, escoja:)</option>
		<?
        while ($row = mysql_fetch_array ($Corigen)) {
			echo "<option value=";
			echo $row['id_origen'];
			echo ">";
			echo $row['origen'];
			echo "</option>";
		}
		?>
		</select></p>
    <p>DETALLE ORIGEN:
    	<select name="det_origen" id="det_origen">
		<option value="0">(Por favor, escoja:)</option>
		<?
        while ($fila = mysql_fetch_array ($Cdet_origen)) {
			echo "<option value=";
			echo $fila['id_detalle'];
			echo "class=";
			echo $fila['rel_origen'];
			echo ">";
			echo $fila['det_origen'];
			echo "</option>";
		}
		?>
		</select></p>
</div>
Cada parte del código está entre sus correspondientes etiquetas html o php, lo que puse son fragmentos

La funcion que por el momento tengo es algo así:

Código:
    <script language="JavaScript">
	function escoge() {
		$('.1').hide();
		$('.2').hide();
		$('.3').hide();
		$('.4').hide();
		$('.5').hide();
		$('.6').hide();
		
		var n = getElementByName('origen').value;
	}
	</script>
La función está sin terminar porque no consigo que oculte los elementos del segundo combo. Supuse que si a cada elemento le daba una clase (del 1 al 6) [viene de la query que relaciona origen con el detalle_origen] si usaba: $('.1').hide() ; ocultaría los correspondientes a la clase 1. Pero como eso no funciona pues no la tengo terminada. Una vez eso funcionase me faltaría poner un "if" que mostrase aquel que tenga la misma clase que el valor seleccionado en el combo uno.


Bueno, pues esa es toda mi pregunta, espero haberla redactado bien. También agradecería que me sugiriesen sitios web o libros para aprender bien javascript, mi principal falta es el desconocimiento de muchas funciones del tipo getElementBy o document.ready, etc.

Saludos!

Etiquetas: combos, elementos
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 14:03.