Foros del Web » Programando para Internet » Javascript »

Usando SELECT en forms

Estas en el tema de Usando SELECT en forms en el foro de Javascript en Foros del Web. Buenas! Este es mi primer post en el foro, je... Asi que porfa sean misericordiosos :P Tengo el siguiente dilema... En un archivo PHP Tengo ...
  #1 (permalink)  
Antiguo 07/10/2008, 16:09
Avatar de Kanyenke  
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Usando SELECT en forms

Buenas! Este es mi primer post en el foro, je... Asi que porfa sean misericordiosos :P

Tengo el siguiente dilema... En un archivo PHP Tengo 3 selects, uno para un pais, otro para una provincia, y otro para una ciudad.

Mi objetivo es que cuando uno elija un país, se cargue de una base de datos mySQL, las provincias de ese país, y de la misma forma se carguen las ciudades al elegirse la provincia; ¡Y no sólo eso! Sino que al "recargar" la página al elegirse algo, se siga manteniendo lo seleccionado.

Que hacía yo? Hacía que el SELECT del cual elegís la provincia, envíe un FORM a la misma página PHP, para que la reciba luego... algo así:

Código:
<form method=post action "otra.php">// Este post envía la info para que se suba a la base de datos
<form method=post action "misma.php"> // Esta es la que "recarga" la página y envía los datos del país elegido para cambiar la provincia, ciudad, etc.
<select name="ciudad" onChange="this.form.submit()" >//Uso this.form.submit() para que cuando elija se aplique el formulario
<option value= "0">Todos los países</option>
				<?php
				$link = mysql_connect("localhost", "asd", "pass");
				mysql_select_db("DB", $link);
				$pais = $_POST["pais"];
				$sql = mysql_query ("SELECT DISTINCT pais FROM lugares ORDER BY pais ASC ");
				While($row=mysql_fetch_array($sql))
				{
				if ($pais == $row[pais]) //Acá hago este if para "devolver" la opción checkeada antes de la recarga.
				{
				echo '<option selected="selected" value="'.$row[pais].'">'.$row[pais].'</option>';
				} else {
				echo '<option value="'.$row[pais].'">'.$row[pais].'</option>';
				}
				}
				?>
</select>
</form>
</form>
Parece sólido no? Gracias gracias (humiladad aparte xD).
El hecho es que, como verán al principio, tengo dos etiquetas FORM... Una, la que manda la info... y la otra, la que envía a la misma página y permite, a travez de variables con POST, averiguar que país eligió, y elegir las provincias de la base de datos en consecuencia...


Cual es el problema? El
Código:
<select name="ciudad" onChange="this.form.submit()" >
En vez de tomarme el "misma.php" me toma el del FORM más anterior, el "otra.php"!

Como hago que tome el form que estáams cerca de él?

Alguna sugerencia para hacer ésto de "mostrar en el select algo según la opción elegida en otro select" más practicamente?

Gracias a todos! :)
  #2 (permalink)  
Antiguo 07/10/2008, 16:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Usando SELECT en forms

Creo que estás complicandote la vida, es más fácil usar AJAX para hacer lo mismo sin recargar la página.

NO coloques un formulario dentro de otro. Si de todos modos quieres hacerlo de esa forma, usa un único formulario y haz que el código PHP haga la diferencia cuando se envía usando el onchange del <select> o cuando se envía pulsando el botón enviar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/10/2008, 16:35
Avatar de Kanyenke  
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Usando SELECT en forms

No estoy familiarizado con AJAX... podrías darme un ejemplo como para orientarme porfa?
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 16:48.