Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/02/2016, 11:47
byrong
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 4 meses
Puntos: 3
Respuesta: Error selects dependientes

Cita:
Iniciado por pateketrueke Ver Mensaje
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'])){
    
    
$localidadesdameLocalidad($_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.