Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2015, 10:56
ranijo
 
Fecha de Ingreso: mayo-2015
Mensajes: 8
Antigüedad: 9 años
Puntos: 0
Pregunta Llevo dias buscando en el foro y no encuentro solucion

Muy buenas tardes a todos, tengo un pequeño(o gran) problema que necesitaría me ayudéis a resolver. He de decir que he leído decenas de post y no he encontrado(o no he sido capaz de verla)una solución. Os cuento:

-Tengo una base de datos, a la cual he llamado Ejemplo.
-Cuatro tablas dentro de Ejemplo.
-pais
paisId -- País
1 -- España
2 -- Francia
-ciudad
ciudadId -- Ciudad -- paisId
1 -- Madrid -- 1
2 -- Barcelona-- 1
3 -- Paris -- 2
4 -- Niza -- 2
-lugares
lugarid -- Lugar -- ciudadId
1 -- Museo -- 1
1 -- Museo -- 2
1 -- Museo -- 3
1 -- Museo -- 4
2 -- Cine -- 1
2 -- Cine -- 2
2 -- Cine -- 3
2 -- Cine -- 4
3 -- Teatro -- 1
3 -- Teatro -- 2
3 -- Teatro -- 3
3 -- Teatro -- 4
-datoslugares
ciudadId -- Población -- Museos -- Cines -- Teatros
1 -- PobA -- MusA -- CinA -- TeatA
1 -- PobB -- MusA -- CinA -- TeatA
1 -- PobC -- MusA -- CinA -- TeatA
2 -- PobA -- MusA -- CinA -- TeatA
2 -- PobB -- MusA -- CinA -- TeatA
2 -- PobC -- MusA -- CinA -- TeatA
3 -- PobA -- MusA -- CinA -- TeatA
3 -- PobB -- MusA -- CinA -- TeatA
3 -- PobC -- MusA -- CinA -- TeatA
4 -- PobA -- MusA -- CinA -- TeatA

Bien, he creado una pag a la cual he llamado ejemplo.html
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3.     <meta charset="UTF-8">
  4.     <title>Ejemplo</title>
  5.     <script src="../Js/jquery-1.11.2.js"></script>
  6.    
  7.     <script type="text/javascript">
  8.         $("document").ready(function(){
  9.             $("#pais").load("pais.php");
  10.            
  11.             $("#pais").change(function(){
  12.                 var id = $("#pais").val();
  13.                 $.get('ciudad.php',{param_id:id})
  14.                  .done(function(data){
  15.                      $("#ciudad").html(data);
  16.                      
  17.                      
  18.                         $("#ciudad").change(function(){
  19.                             var id2 = $("#ciudad").val();
  20.                             $.get('lugares.php',{param_id:id2})
  21.                              .done(function(data){
  22.                                  $("#lugares").html(data);
  23.                                    
  24.                                    
  25.                                     $("#lugares").change(function(){
  26.                                         var id2 = $("#ciudad").val();
  27.                                         var id3 = $("#lugares option:selected").text();
  28.                                         $.post('mostrar.php',{lug_id:id3, param_id:id2})
  29.                                          .done(function(data){
  30.                                              $("#mostrar").html(data);
  31.                                          })
  32.                                     })
  33.                              })
  34.                         })
  35.                  })
  36.             })
  37.  
  38.         })
  39.     </script>
  40.    
  41.    
  42. </head>
  43.     <label>Pais</label>
  44.     <select id="pais">
  45.        
  46.     </select>
  47.     <label>Ciudad:</label>
  48.     <select id="ciudad" >
  49.      
  50.        
  51.     </select>
  52.     <label>Lugares:</label>
  53.     <select id="lugares" >
  54.        
  55.     </select>
  56.    
  57.     <h2>resultados</h2>
  58.     <div id="mostrar">
  59.        
  60.    
  61.     </div>
  62. </body>
  63. </html>
y cuatro más en php:

país.php
Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=ISO-8859-1');
  3. $servidor="localhost";
  4. $usuario="root";
  5. $pass="";
  6. $bd="Ejemplo";
  7.  
  8. $con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
  9.  
  10. $result = mysqli_query($con, "SELECT * FROM paises" );//almacenamos en $result todos(*) los resultados de la tabla paises
  11. echo'<option>Selecciona:</option>';
  12. while ($row = mysqli_fetch_array($result)){
  13.     echo '<option value="'.$row['paisId'].'">'.$row['Pais'].' </option>';//Mostramos los resultados de Pais dentro de las opciones
  14. }
  15.  
  16. ?>

ciudad.php

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=ISO-8859-1');
  3. $paisid = $_GET['param_id'];
  4.  
  5. $servidor="localhost";
  6. $usuario="root";
  7. $pass="";
  8. $bd="Ejemplo";
  9.  
  10. $con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
  11.  
  12. $result = mysqli_query($con, "SELECT * FROM ciudad WHERE paisId = $paisid");//almacenamos en $result todos(*) los resultados de la tabla ciudad que coincidan en el paisIdId
  13. echo'<option>Selecciona:</option>';
  14. while ($row = mysqli_fetch_array($result)){
  15.     echo '<option value="'.$row['ciudadId'].'">'.$row['Ciudad'].' </option>';//Mostramos los resultados de Ciudad dentro de las opciones
  16. }
  17.  
  18. ?>

lugares.php

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=ISO-8859-1');
  3. $ciudadid = $_GET['param_id'];
  4.  
  5. $servidor="localhost";
  6. $usuario="root";
  7. $pass="";
  8. $bd="Ejemplo";
  9.  
  10. $con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
  11.  
  12. $result = mysqli_query($con, "SELECT * FROM lugares WHERE ciudadId = $ciudadid");//almacenamos en $result todos(*) los resultados de la tabla lugares que coincidan en el ciudadId
  13. echo'<option>Selecciona:</option>';
  14. while ($row = mysqli_fetch_array($result)){
  15.     echo '<option >'.$row['lugares'].' </option>';//Mostramos los resultados de lugares dentro de las opciones
  16. }
  17.  
  18. ?>

y mostrar.php

Código PHP:
Ver original
  1. <?php
  2. header('Content-Type: text/html; charset=ISO-8859-1');
  3.  
  4. $ciudadid = $_POST['param_id'];
  5. $lugar = $_POST['prop_id'];
  6. //echo $tropa;
  7. //echo $propiedad;
  8.  
  9. $servidor="localhost";
  10. $usuario="root";
  11. $pass="";
  12. $bd="Ejemplo";
  13.  
  14. $con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
  15. $result = mysqli_query($con, "SELECT * FROM  datoslugares WHERE ciudadId=$ciudadid");
  16.        
  17.            
  18.             switch ($propiedad){
  19.                 case['Museos']:
  20.                     while ($row = mysqli_fetch_array($result)){
  21.                     echo $row[1];//que corresponde a la columna Poblacion
  22.                     echo $row[2];}//que corresponde a la columna Museos en la tabla
  23.                     break;
  24.                    
  25.                 case['Cines']:
  26.                     while ($row = mysqli_fetch_array($result)){
  27.                     echo $row[1];  
  28.                     echo $row[3];}//que corresponde a la columna Cines
  29.                     break;
  30.  
  31.                 case['Teatros']:
  32.                     while ($row = mysqli_fetch_array($result)){
  33.                     echo $row[1];  
  34.                     echo $row[4];}//que corresponde a la columna Teatros
  35.                     break;
  36.                    
  37.                 default:
  38.                     break;
  39.         }
  40.    
  41. ?>

Todos los select funcionan perfectamente, se llenan dependiendo de la selección del usuario, pero no soy capaz de lograr que ,tras seleccionar la opción en el ultimo select, muestre los datos correctos, o sea que el fallo esta en mostrar.php.
He de decir que ya he probado varias opciones
p.ej.
- Al realizar la consulta a la bd poner lo siguiente
Código:
$result = mysqli_query($con, "SELECT '".$lugar."' FROM  datoslugares WHERE ciudadId=$ciudadid");
while ($row = mysqli_fetch_array($result)){
	echo $row[$lugar] </option>';
Gracias anticipadas.

P.D. ya se que el código se podría simplificar añadiendo un include :conexión p. ej. pero ahora lo que me preocupa es hacerlo funcionar.