Cita:
Iniciado por pateketrueke Mejor no supongas y muestra lo que has hecho.
Tengo un archivo llamado
funciones.php que tiene estas funciones:
Código PHP:
function dameEstado(){
$resultado = false;
$consulta = "SELECT * FROM estados ORDER by nombreestado" ;
$conexion = conectaBaseDatos();
$sentencia = $conexion->prepare($consulta);
try {
if(!$sentencia->execute()){
print_r($sentencia->errorInfo());
}
$resultado = $sentencia->fetchAll();
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
$sentencia->closeCursor();
}
catch(PDOException $e){
echo "Error al ejecutar la sentencia: \n";
print_r($e->getMessage());
}
return $resultado;
}
function dameMunicipio($estado = ''){
$resultado = false;
$consulta = "SELECT * FROM municipios";
if($estado != ''){
$consulta .= " WHERE idestado = :nombreestado ORDER by nombremunicipio";
}
$conexion = conectaBaseDatos();
$sentencia = $conexion->prepare($consulta);
$sentencia->bindParam('nombreestado',$estado);
try {
if(!$sentencia->execute()){
print_r($sentencia->errorInfo());
}
$resultado = $sentencia->fetchAll();
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
$sentencia->closeCursor();
}
catch(PDOException $e){
echo "Error al ejecutar la sentencia: \n";
print_r($e->getMessage());
}
return $resultado;
}
function dameLocalidad($municipio = ''){
$resultado = false;
$consulta = "SELECT * FROM localidades";
if($municipio != ''){
$consulta .= " WHERE idmunicipio = :nombremunicipio ORDER by nombrelocalidad";
}
$conexion = conectaBaseDatos();
$sentencia = $conexion->prepare($consulta);
$sentencia->bindParam('nombremunicipio',$municipio);
try {
if(!$sentencia->execute()){
print_r($sentencia->errorInfo());
}
$resultado = $sentencia->fetchAll();
//$resultado = $sentencia->fetchAll(PDO::FETCH_ASSOC);
$sentencia->closeCursor();
}
catch(PDOException $e){
echo "Error al ejecutar la sentencia: \n";
print_r($e->getMessage());
}
return $resultado;
}
Otro llamado
buscar.php Código PHP:
<?php
require_once("funciones.php");
if(isset($_POST['estado'])){
$municipios = dameMunicipio($_POST['estado']);
$html = "<option value=''>Seleccione un Municipio</option>";
foreach($municipios as $indice => $registro){
$html .= "<option value='".$registro['idmunicipio']."'>".$registro['nombremunicipio']."</option>";
}
$respuesta = array("html"=>$html);
echo json_encode($respuesta);
}
if(isset($_POST['municipio'])){
$localidades= dameLocalidad($_POST['municipio']);
$html = "<option value=''>Seleccione una Localidad</option>";
foreach($localidades as $indice => $registro){
$html .= "<option value='".$registro['idlocalidad']."'>".$registro['nombrelocalidad']."</option>";
}
$respuesta = array("html"=>$html);
echo json_encode($respuesta);
}
Repito el problema: Al seleccionar un estado y luego que me carguen los municipios de ese estado, al darle click en Seleccione un municipio: que es la primera opción del select del municipio, me devuelve todas las localidades registradas en la base de datos..
Gracias.