Un ejemplo rápido, para más detalles tendre que hacerte un tutorial en
www.elporfirio.comTe pongo aqui framentos de un codigo que hice:
Código :
<select name="inEstadoForo" required id="inEstadoForo">
<option value="" selected>- Elija un Estado -</option>
<?php
$oNuevoEstado = new Foro;
$estado = $oNuevoEstado->obtenerEstado();
foreach($estado as $indice => $campo){
echo "<option value='".$campo['idestados']."'>".$campo['estado']."</option>";
}
?>
</select>
<select id="inMunicipioForo" required>
<option value="" selected>- Elija un Municipio -</option>
</select>
viene la parte del JavaScript (aqui uso Jquery)
Código :
$("#inEstadoForo").change(function(){
obtenerMunicipios($("#inEstadoForo").val());
});
function obtenerMunicipios(estadoElegido){
$.ajax({
url: "lib/consultarMunicipio.php",
type: "POST",
dataType:"json",
data: {"estado": estadoElegido},
beforeSend: function(){
$("#inEstadoForo").attr("disabled","disabled");
$("#inMunicipioForo").html("<option value='' selected>Cargando...</option>");
$("#inMunicipioForo").attr("disabled","disabled");
},
success: function(respuesta){
$("#inEstadoForo").removeAttr("disabled");
if(respuesta.municipios){
$("#inMunicipioForo").html(respuesta.municipios);
$("#inMunicipioForo").removeAttr("disabled");
}
else{
$("#inMunicipioForo").html("<option value='' selected>- Elija un Municipio -</option>");
$("#inMunicipioForo").removeAttr("disabled");
}
},
error: function(xhr, err){
alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
alert("responseText: "+xhr.responseText);
}
});
}
en el JS anterior se llama a la pagina que consulta lo necesario y tiene el codigo siguiente
Código :
<?php
//Incluimos clases
include("folder.php");
//require_once(DIR_BASE."/class/class.consultas.php");
require_once("../class/class.consultas.php");
$oDatosForo = new Foro;
$municipios = $oDatosForo->obtenerMunicipio(array("estado"=>$_POST['estado']));
foreach($municipios as $indice => $campo){
$consulta .= "<option value=\"".$campo['idmunicipios']."\">".$campo['municipio']."</option>";
}
if(sizeof($consulta) != 0){
$respuesta = array("municipios"=>$consulta);
echo json_encode($respuesta);
}
else {
$respuesta = array("municipios"=>false);
echo json_encode($respuesta);
}
?>
Y aqui la funcion.. lo siento si esta algo enredado pero no soy muy bueno en la Programación orientada a Objetos y me falla
Código :
public function obtenerMunicipio($param = array()){
$valores = null;
$consulta = "SELECT * FROM municipios";
if($param['estado']){
$consulta .= " WHERE idestado = :estado";
$valores = array("estado"=>$param['estado']);
}
$oDatosConexion = new conectorDB;
$municipios = $oDatosConexion->consultarBD($consulta, $valores);
return $municipios;
}
Pero si esperas puedo hacer el tutorial en video con un codigo más sencillo
aunque no se si me de tiempo hoy. Saludos.