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<!DOCTYPE html>
<script type="text/javascript"> $("document").ready(function(){
$("#pais").load("pais.php");
$("#pais").change(function(){
var id = $("#pais").val();
$.get('ciudad.php',{param_id:id})
.done(function(data){
$("#ciudad").html(data);
$("#ciudad").change(function(){
var id2 = $("#ciudad").val();
$.get('lugares.php',{param_id:id2})
.done(function(data){
$("#lugares").html(data);
$("#lugares").change(function(){
var id2 = $("#ciudad").val();
var id3 = $("#lugares option:selected").text();
$.post('mostrar.php',{lug_id:id3, param_id:id2})
.done(function(data){
$("#mostrar").html(data);
})
})
})
})
})
})
})
y cuatro más en php:
país.php
Código PHP:
Ver original<?php
header('Content-Type: text/html; charset=ISO-8859-1'); $servidor="localhost";
$usuario="root";
$pass="";
$bd="Ejemplo";
$con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
$result = mysqli_query($con, "SELECT * FROM paises" );//almacenamos en $result todos(*) los resultados de la tabla paises echo'<option>Selecciona:</option>';
echo '<option value="'.$row['paisId'].'">'.$row['Pais'].' </option>';//Mostramos los resultados de Pais dentro de las opciones
}
?>
ciudad.php
Código PHP:
Ver original<?php
header('Content-Type: text/html; charset=ISO-8859-1'); $paisid = $_GET['param_id'];
$servidor="localhost";
$usuario="root";
$pass="";
$bd="Ejemplo";
$con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
$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 echo'<option>Selecciona:</option>';
echo '<option value="'.$row['ciudadId'].'">'.$row['Ciudad'].' </option>';//Mostramos los resultados de Ciudad dentro de las opciones
}
?>
lugares.php
Código PHP:
Ver original<?php
header('Content-Type: text/html; charset=ISO-8859-1'); $ciudadid = $_GET['param_id'];
$servidor="localhost";
$usuario="root";
$pass="";
$bd="Ejemplo";
$con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos
$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 echo'<option>Selecciona:</option>';
echo '<option >'.$row['lugares'].' </option>';//Mostramos los resultados de lugares dentro de las opciones
}
?>
y
mostrar.php
Código PHP:
Ver original<?php
header('Content-Type: text/html; charset=ISO-8859-1');
$ciudadid = $_POST['param_id'];
$lugar = $_POST['prop_id'];
//echo $tropa;
//echo $propiedad;
$servidor="localhost";
$usuario="root";
$pass="";
$bd="Ejemplo";
$con = mysqli_connect($servidor,$usuario, $pass, $bd); //realizamos conexion y seleccionamos base de datos $result = mysqli_query($con, "SELECT * FROM datoslugares WHERE ciudadId=$ciudadid");
switch ($propiedad){
case['Museos']:
echo $row[1];//que corresponde a la columna Poblacion
echo $row[2];}//que corresponde a la columna Museos en la tabla
break;
case['Cines']:
echo $row[1];
echo $row[3];}//que corresponde a la columna Cines
break;
case['Teatros']:
echo $row[1];
echo $row[4];}//que corresponde a la columna Teatros
break;
default:
break;
}
?>
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.