Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/02/2014, 12:08
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: pasar datos de un combo a otro

Yo lo haría con Ajax:

Código HTML:
Ver original
  1. Continentes:
  2. <select id = "continentes">
  3.     <option = 0>Seleccione un continente</option>
  4.     <option = 1>África</option>
  5.     <option = 2>América</option>
  6.     <option = 3>Asia</option>
  7.     <option = 4>Europa</option>
  8.     <option = 5>Oceanía</option>
  9.  
  10. Países:
  11. <div id = "p"></div>

En el mismo documento, hago referencia al archivo JS en donde haré la petición asíncrona:

Código Javascript:
Ver original
  1. $("#continentes").change(function(){
  2.     if ($(this).val() > 0){
  3.         $.ajax({
  4.             url: "paises.php",
  5.             data: "continente=" + $(this).val(),
  6.             success: function(response){
  7.                 $("#p").html(response);
  8.             }
  9.         });
  10.     }
  11. });

Y en el archivo paises.php:

Código PHP:
Ver original
  1. <?php
  2. $continente = $_GET["continente"];
  3. $query = mysql_query("SELECT * FROM paises WHERE id_continente = $continente");
  4. if (mysql_num_rows($query)){
  5. ?>
  6.     <select id = "paises">
  7. <?php
  8.     while ($row = mysql_fetch_array($query)){
  9. ?>
  10.         <option value = "<?php echo $row["id"]; ?>"><?php echo $row["nombre_pais"]; ?></option>
  11. <?php
  12.     }
  13. ?>
  14.     </select>
  15. <?php
  16.     mysql_free_result($query);
  17. }
  18. else{
  19.     echo "No se encontraron países coincidentes con el continente seleccionado";
  20. }

Básicamente, cuando elijas un continente de la lista, enviarás al archivo paises.php el código de dicho continente, lo buscarás en la tabla de los países en la BD y si se encuentran datos que le correspondan (países relacionados al continente seleccionado), mostramos un combo al que cargaremos con los países encontrados para el continente seleccionado. Finalmente, esto es insertado en el Div de Id "p" que se encuentra en el primer archivo, en el que también está el combo de los continentes.

Estoy utilizando la extensión MySQL para que sea más comprensible la explicación, pero te recomiendo que empieces usar la extensión MySQLi pues la anterior ya no se recomienda seguir utilizándola pues será eliminada en futuras versiones de PHP.

Ten en cuenta que para este ejemplo, hago uso de la librería jQuery de JavaScript, por lo que te sugiero que la incluyas en tu documento de esta forma:

Código HTML:
Ver original
  1. <script type = "text/javascript" src = "http://code.jquery.com/jquery-1.11.0.min.js"></script>

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 13/02/2014 a las 12:15