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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  consulta mysql : Dificultad media-alta.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: consulta mysql : Dificultad media-alta.  (Leído 1,122 veces)
the_sheriff_pino

Desconectado Desconectado

Mensajes: 42



Ver Perfil
consulta mysql : Dificultad media-alta.
« en: 24 Mayo 2013, 13:56 pm »

Saludos compañeros foreros!
Recurro a ustedes porque mi cabeza ya no da para más.

Os pongo en situación
Tengo una tabla lista_clientes que contiene, entre otros campos, un campo Provincia.
También tengo una tabla lista_provincias que contiene los campos id, provincia.
Y una tabla lista_poblaciones que contiene los campos id(El mismo que la provincia), poblacion.

Vamos al meollo!

En un formulario de crear cliente, a la hora de meter la provincia y la población, al usuario se le muestra una lista desplegable con todas las provincias, y cuando selecciona una de ellas, con jQuery, se le muestra otra lista desplegable con las poblaciones que pertenecen a la provincia seleccionada. (Recuerdo que tienen en común el ID).

Pues cuando quiero mostrar los datos del cliente, en los input type=text no hay problema; pero tanto la provincia como la población las cargo en un select, mostrándose la opción selected, la obtenida del campo Provincia de la tabla lista_clientes.

La cuestión es: como le digo yo a la página que el valor obtenido de la provincia del cliente lo relacione con la provincia del mismo nombre de la tabla provincias, para que se pueda ejecutar el jQuery y así mostrarme directamente la lista con las poblaciones de esa provincia.

Resumiendo: Cargar el valor del campo[Provincia] de la tabla [lista_clientes], asociarle el ID que le correspondería de la tabla[lista_provincias] para que se pueda mostrar luego la lista de las poblaciones.

Perdonen la chapa, pero creo que mejor explicarlo todo de una vez.

Os dejo el código que afecta para aclararos un poco.

Este fragmento de código es el que crea los select.
Código
  1. if(isset($_POST['cargar'])) //Se obtiene al pulsar el botón [Datos de cliente] en una página anterior
  2. {
  3. $cif = $_POST['clientes'];
  4.  
  5. $consultaprov = "SELECT * FROM lista_clientes WHERE CIF='".$cif."'";
  6. $rconsultaprov = mysql_query($consultaprov,$link);
  7.  
  8.            while ($fila = mysql_fetch_assoc($rconsultaprov)) //Obtenemos la provincia y población del cliente en dos text.
  9.             { ?>
  10.               <label for="Field6">Provincia</label>
  11.                    <input type="text" value="<?php echo $fila['Provincia'];?>" name="prov" disabled style="text-transform:uppercase;">
  12.                    <label for="Field6">Población</label>
  13.                    <input type="text" value="<?php echo $fila['Localidad'];?>" name="pobl" disabled style="text-transform:uppercase;">
  14.                    <br>
  15. <?php  $pepe=$fila['Provincia'];
  16. global $pepe;?>
  17.  
  18.            Si desea modificarla, elija una de la lista:<br>
  19. Provincia:
  20.          <?php } ?>
  21. <select id="lista1" name="lst1" class="field select addr" >            
  22.      <?php $consulta_prov = " SELECT * FROM lista_clientes WHERE CIF='".$cif."'";
  23. $rconsulta_prov = mysql_query($consulta_prov,$link);
  24.  
  25. while ($fila = mysql_fetch_assoc($rconsulta_prov))
  26.             { ?>
  27. <option selected value="<?php echo $fila['Provincia'];?>"><?php echo $fila['Provincia'];?></option>
  28. <?php }
  29.  
  30. $consulta="SELECT * FROM lista_provincias";
  31. $completa=mysql_query($consulta,$link);?>
  32.  
  33. <?php while ($fila=mysql_fetch_assoc($completa))
  34.             { ?>
  35. <option value="<?php echo $fila['id'];?>"><?php echo $fila['opcion'];?></option>
  36. <?php   }
  37.         $pepe=$fila['id'];
  38. global $pepe;
  39. ?>
  40.  
  41.                </select>  
  42.  
  43.  
  44.  
  45.    <select id="lista2" name="lst2" class="field select addr">
  46.  
  47. <?php $consulta_pobl = " SELECT * FROM lista_clientes WHERE CIF='".$cif."'";
  48. $rconsulta_pobl = mysql_query($consulta_pobl,$link);
  49.  
  50. while ($fila = mysql_fetch_assoc($rconsulta_pobl))
  51.             { ?>
  52. <option selected value="<?php echo $fila['Localidad'];?>"><?php echo $fila['Localidad'];?></option>
  53. <?php }
  54.  
  55. $consultapobl9 = "SELECT lista_poblaciones.opcion FROM lista_provincias JOIN lista_poblaciones
  56. ON lista_provincias.id =lista_poblaciones.id WHERE lista_provincias.opcion ='".$pepe."' ORDER BY opcion ASC";
  57. $rconsultapobl9 = mysql_query($consultapobl9,$link);
  58.           while ($fila=mysql_fetch_assoc($rconsultapobl9))
  59.           { ?>
  60. <option value="<?php echo $fila['opcion'];?>"><?php echo $fila['opcion'];?></option>
  61. <?php } ?>
  62. </select>
  63. <?php } ?>
  64.  
  65. <table>
  66.     <tr>
  67.            <td id="slista">
  68.  
  69.            </td>
  70.  
  71.        </tr>
  72.    </table>
  73.  
  74. </span>

Este fragmento es el de jQuery, que hace que cuando selecciones una provincia cargue el select de poblaciones de esa provincia. ATENCION LINEA 67 del fragmento anterior
Código
  1. $(document).on("ready",function()
  2. {
  3. $('#lista1').on("change",function()
  4. {
  5. var id = $('#lista1').val();
  6. var metodo = $('#formulario').attr('post')
  7. $.ajax(
  8. {
  9. url:"mostrarpoblaciones3.php",
  10. type:metodo,
  11. data:{identidad: id},
  12. success: function(resp)
  13. {
  14. $('#slista').html(resp);
  15. },
  16. error: function(jqXHR,estado,error)
  17. {
  18. alert("No se ha podido realizar la consulta a la base de datos, por favor intentelo de nuevo");
  19. }
  20. });
  21. });
  22.  
  23. });
  24.  

Esta es la página de mostrarpoblaciones3.php, nombrada en el código de jQuery.
Código
  1. <?php
  2. $link=mysql_connect("localhost","root","");
  3. mysql_select_db("clientes",$link);
  4. $id=$_GET['identidad'];
  5.  
  6. $consulta="SELECT DISTINCT id, opcion FROM lista_poblaciones WHERE id = $id ORDER BY opcion ASC";
  7. $completa=mysql_query($consulta,$link);?>
  8. <span class="rigth state">
  9.     <label for="Field6">Población</label>
  10. <select id="lista2" name="lst2" class="field select addr">
  11.  
  12. <?php
  13.            while ($fila=mysql_fetch_assoc($completa))
  14.            {
  15.        ?>
  16.  
  17. <option value="<?php echo $fila['opcion'];?>"><?php echo $fila['opcion'];?></option>
  18.  
  19.  
  20. <?php
  21.  
  22.            }
  23.        ?>
  24. </select>
  25. </span>


En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta en mysql
Bases de Datos
octavioxd 3 4,353 Último mensaje 9 Enero 2010, 04:27 am
por octavioxd
Consulta en mysql
Bases de Datos
usuani 2 4,536 Último mensaje 9 Marzo 2010, 17:25 pm
por usuani
Ayuda A Usar AutoPlay Media Studios a Crear 1 Login Con mysql php
Software
animehr 0 2,348 Último mensaje 17 Julio 2011, 23:00 pm
por animehr
Consulta MySQL
Bases de Datos
migueweb 1 1,703 Último mensaje 25 Abril 2013, 20:32 pm
por engel lex
dificultad media en conecta 4 c++
Programación C/C++
Abril7 1 1,736 Último mensaje 28 Noviembre 2016, 07:21 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines