Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2010, 03:19
informa
 
Fecha de Ingreso: noviembre-2005
Mensajes: 86
Antigüedad: 18 años, 5 meses
Puntos: 0
Necesito que alguien me oriente

Hola:

Tengo un formulario, dentro del cual se elige un pais en un select que se rellena con una tabla. Una vez elegido, mediante onChange se carga otra página donde se muestran las provincias de ese pais, tambien desde otra tabla:


Código:
<?php
include("conexion_base_de_datos.php");
echo "<form action=\"segundo_formulario.php\" method=\"POST\">\n\n";

    echo "<b>País: </b>";
   // Formar Selec "Padre".
   echo "<select name=\"pais\" onChange=\"this.form.submit()\">\n";
   echo "<option value=\"\"> Selecciona... </option>\n";
   $SQLconsulta_padre="SELECT * FROM paises";
   $consulta_padre = mysql_query($SQLconsulta_padre,$conexion) or 
die(mysql_error());

   While   ($registro_padre=mysql_fetch_assoc($consulta_padre)){
      // Se mira si el ID del registro es el mismo q el $id_nacion q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      if ($pais == $registro_padre['pais']){echo "<option value=\"".$registro_padre['pais']."\" selected>".$registro_padre['pais']."</option>\n";
      } else {echo "<option value=\"".$registro_padre['pais']."\">".$registro_padre['pais']."</option>\n";}
    }
   echo "</select>\n\n";
   mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

echo "<br /><b>Provincia:</b>";

if (!empty($pais)){ echo "<select name=\"provincia\">\n";echo "<option value=\"bbb\">Cualquier provincia..</option>";echo "</select>\n\n";
             } else {echo "<select name=\"provincia\">\n";echo "<option value=\"\">Elige antes un pais</option>";echo "</select>\n\n";}

echo "<br />";
echo "<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
    echo "</form>\n";
?>

En la segunda página, muestro las provincias:

Código:
<?php
$pais=$_POST["pais"];
$provincia=$_POST["provincia"];

include("conexion_base_de_datos.php");
echo "<form action=\"procesar_formulario.php\" method=\"POST\">\n\n";
//el pais lo ponemos SOLO con el dato del pais elegido
echo "<select name=\"pais\">\n";
              echo "<option value=\"$pais\">$pais</option>\n";
              echo "</select>\n\n";

//ahora ponemos el select de la provincia con solo los datos de provincias del pais elegido
if (!empty($pais)){
              $SQLconsulta_hija="SELECT * FROM provincias  WHERE pais='$pais'";
              $consulta_hija = mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
                 if (mysql_num_rows($consulta_hija) != 0){
                 echo "<select class=\"option_bus\" name=\"provincia\">\n";
                    While($registro_hija=mysql_fetch_assoc($consulta_hija)){ echo "<option value=\"".$registro_hija['provincia']."\">".$registro_hija['provincia']."</option>\n";}
                    mysql_free_result($consulta_hija);
                    echo "</select>\n\n";
                    } else {echo "<input type=\"text\" name=\"provincia\" size=\"35\" maxlenght=\"35\" />";}
                 } else {echo "<select name=\"provincia\">\n";echo "<option value=\"\">Selecciona antes un pais</option>";echo "</select>\n\n";}

echo "<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
    echo "</form>\n";
                 ?>
Aunque la segunda página es igual a la primera, queda algo feo porque según el ancho de banda que se tenga se nota la recarga.

Mi pregunta es: Mi pregunta es: si por ejemplo tengo la página con varios divs, ¿cómo tengo que hacerlo para que se recargue en la primera página solo el div id="pais-provincia"?

<html>
<body>
<div id=cabecera">mi cabecera</div>
<div id="menu">mi menu</div>
<div id="cuerpo>el cuerpo de la pagina con el formulario ....
<div id="empresa">por ejemplo el select de empresas</div>

<div id="pais-provincia">
<div id="pais">aqui el select con los paises</div>
<div id="provincia">aqui el select con las provincias</div>
</div>

<div id="otros-selects">aqui mas selects</div>
<div id="submit">Enviar</div>
</body>
</html>