elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Lista desplegable de Mysql
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lista desplegable de Mysql  (Leído 14,552 veces)
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Lista desplegable de Mysql
« en: 4 Abril 2013, 12:18 pm »

Saludos buena gente!
Tengo una pequeña/gran duda sobre una parte de código, os cuento.
Quiero poner en php una lista desplegable que contenga valores sacados de una tabla que tengo en PHPMyAdmin(Utilizo el XAMPP); y que dependiendo de la selección en esa primera lista, en una segunda lista los valores que muestre estén condicionados por la primera elección.
Con un ejemplo se ve más claro.
Tengo una tabla "provincias" con dos campos: cod_provincia y provincia.
Y otra tabla "poblaciones" con tres campos: cod_provincia, poblacion y cod_postal.

Mi objetivo es en que en la lista desplegable aparezcan todas las provincias de la tabla "provincias" y que dependiendo de la elección, en la segunda lista desplegable me aparezcan las poblaciones pertenecientes a la provincia seleccionada.

Datos adicionales: el servidor de base de datos está en "localhost", el user es "root" y la contraseña "toor".

Un saludo y gracias de antemano.


En línea

Rebélate
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Lista desplegable de Mysql
« Respuesta #1 en: 4 Abril 2013, 17:32 pm »

En todo caso, lo mas normal es obtener el ID (cod_provincia) y buscar la localidad (poblaciones) asociadas a ese ID.

Seria algo así como, primero haces un SELECT a la tabla provincias y sacas el cod_provincia. Los metes en un <select> y le das al usuario a elegir que provincia quiere. Luego cuando la haya seleccionado, compruebas el cod_provincia con la clausula WHERE de SQL y sacas la población asociada a ese ID.

Si necesitas mas ayuda avisa y te damos un ejemplo =)

Saludos


En línea

the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Lista desplegable de Mysql
« Respuesta #2 en: 4 Abril 2013, 17:40 pm »

Alabado seas! Diste en el clavo.
Eso es exactamente lo que quiero.
Ya he montado las dos listas desplegables, una con la lista de provincias y la otra con la lista de poblaciones. La consulta de la lista de provincias es esta: SELECT provincia FROM provincia, pero la de la lista de poblaciones faltaría el condicionante del que hablas, el cod_prov.

Eres capaz de arrojar un poco de luz en el asunto?
En línea

Rebélate
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Lista desplegable de Mysql
« Respuesta #3 en: 4 Abril 2013, 18:32 pm »

En vez de seleccionar solo provincias, selecciona también el cod_provincia.

Código
  1. SELECT cod_provincia, provincia FROM provincia

Luego lo metes en una lista desplegable. De forma que el value del <option> se quede con el cod_provincia y su contenido con el nombre.

Código
  1. <select name="provincias">
  2.   <option value="aquí el cod_provincia"> aquí la provincia</option>

Una vez que el usuario lo haya seleccionado, puedes obtener el cod_provincia y buscarlo en la base de datos así:
Código
  1. SELECT poblacion, cod_postal FROM poblaciones WHERE cod_provincia='aqui lo que te ha mandado el usuario'

Aunque no estoy muy a favor de dejarlo todo hecho, te voy a dejar un ejemplo de como lo haría yo.

Código
  1. <?php
  2. $usuario = 'root'; // Nombre del usuario para la base de datos.
  3. $password = 'toor'; // Contraseña para la base de datos.
  4. $servidor = 'localhost'; // Servidor para la base de datos.
  5. $bd = 'test'; // Nombre de la base de datos.
  6.  
  7. /* Nos conectamos a la base de datos, o en caso contrario mostramos error */
  8. $conexion = New mysqli($servidor,$usuario,$password,$bd);
  9. if ($conexion->connect_errno) { die('Error al conectar a la base de datos'); }
  10.  
  11. /* Si el código de provincia ha sido enviado... */
  12. if(!empty($_POST['cod_provincia'])){
  13.  
  14.   /* Nos aseguramos de que el cod_provincia es solo NUMERICO
  15.    para evitar sqli */
  16.   $codigo = (int)$_POST['cod_provincia'];
  17.  
  18.   /* Esta es la consulta para sacar todas las poblaciones y sus códigos postales indicado
  19.    el código de provincia */
  20.   $query = "SELECT cod_postal, poblacion FROM poblaciones WHERE cod_provincia='".$codigo."'";
  21.  
  22.   /* Realizamos la consulta */
  23.   $resultado = $conexion->query($query);
  24.  
  25.   /* Mostramos la lista */
  26.   echo 'Las poblaciones para esta provincia son: <select name="poblaciones">';
  27.   while($row = $resultado->fetch_assoc()){
  28.      echo '<option>';
  29.      echo 'Poblacion: '.$row['poblacion']; // Nombre
  30.      echo ' -- CP: '.$row['cod_postal']; // Codigo postal
  31.      echo '</option>';
  32.   }
  33.   echo '</select>';
  34.  
  35. /* En caso de que el código de provincia no haya sido enviado... */
  36. } else {
  37.  
  38.   /* Preparamos la consulta */
  39.   $query = "SELECT cod_provincia,provincia FROM provincias";
  40.  
  41.   /* Realizamos la consulta */
  42.   $resultado = $conexion->query($query);
  43.  
  44.   /* Creamos el formulario y mostramos la lista de provincias */
  45.      echo "Por favor, seleciona una provincia: ";
  46.      echo '<form action="" method="POST"><select name="cod_provincia">';
  47.      while($row = $resultado->fetch_assoc()){
  48.         echo '<option value="'.$row['cod_provincia'].'">'.$row['provincia'].'</option>';
  49.      }
  50.      // Cerramos lista + boton enviar + cerramos formulario
  51.      echo '</select> <input type="submit" value="Enviar" /></form>';
  52. }
  53. ?>

Se puede hacer mucho mejor y optimizar pero la idea es mostrar un ejemplo =)

Saludos
« Última modificación: 4 Abril 2013, 18:34 pm por drvy | BSM » En línea

the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Lista desplegable de Mysql
« Respuesta #4 en: 4 Abril 2013, 22:48 pm »

 ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
Impresionante, no sabes cuanto te lo agradezco, me quedé pillado en el código de SQL la consulta de la segunda lista desplegable, voy a ponerlo en práctica y te informo.
Un millón de gracias!
En línea

Rebélate
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Lista desplegable de Mysql
« Respuesta #5 en: 5 Abril 2013, 11:11 am »

Con un par de retoques conseguí echarlo andar, no utilicé tu código, pero me sirvió de guía.
Tengo ahora un "más difícil todavía".
Para que se manden los datos de la primera lista a la segunda, tengo un botón.
Hay alguna manera (con Java tengo entendido que si se puede) de que se produzca el envío de los datos sin necesidad de botón? solo al seleccionar el valor de la lista 1 que se muestren los datos condicionados en la lista 2
En línea

Rebélate
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Lista desplegable de Mysql
« Respuesta #6 en: 5 Abril 2013, 12:39 pm »

Te toca usar AJAX. Te recomiendo la librería de javascript jQuery, te va a simplificar un poco la tarea.  Te dejo un ejemplo
http://www.desarrolloweb.com/articulos/select-dinamico-javascript.html

Saludos
En línea

the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
Re: Lista desplegable de Mysql
« Respuesta #7 en: 8 Abril 2013, 12:50 pm »

Te toca usar AJAX. Te recomiendo la librería de javascript jQuery, te va a simplificar un poco la tarea.  Te dejo un ejemplo
http://www.desarrolloweb.com/articulos/select-dinamico-javascript.html

Saludos

Sabes como puedo almacenar el valor elegido en la primera lista?
Gracias de antemano!
Un saludo
En línea

Rebélate
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
msgbox con una lista desplegable o con botones?
Programación Visual Basic
milotower 5 6,975 Último mensaje 15 Mayo 2009, 17:46 pm
por byway
Lista/Menu mysql y php
PHP
Mr. eggthos 1 4,287 Último mensaje 18 Diciembre 2009, 20:06 pm
por Mr. eggthos
Lista desplegable de países, estado, etc etc
Java
mokoMonster 5 6,420 Último mensaje 16 Marzo 2011, 02:43 am
por mokoMonster
Cargar Lista de un fichero con fseek a una lista auxiliar en el programa.
Programación C/C++
samur88 1 3,139 Último mensaje 12 Mayo 2011, 23:25 pm
por samur88
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines