last day (14 days later) » 

12:31 AM
0
Q: Select dependientes PHP AJAX MYSQL

ZeusEstoy trabajando con 2 select, el segundo depende del dato que se seleccione en el primero. No he logrado que me funcione, hasta el momento lo Ășnico que hace es cargar los datos correspondiente a cada select pero por separado. **//Carga los datos de los departamentos en el Select//** <div>

 
que te trae el retorno de municipioData.php? si lo hace de manera correcta?
 
Tengo ese interrogante pues municipioData.php es la clase donde hago la consulta para traer todos los municpios, se puede ver en el código que coloque en la preguntsa
 
Tu seleccionas mas de una opción en departamento?
 
sólo una opción en departamento
 
Borra el each y prueba con $("#idDep option:selected").val() y dime si te funciona.
 
12:31 AM
en la forma que tengo estructurado el proyecto de que otra forma s epuede hacer?
 
Prueba como te mencione con borrando el ciclo que hace con each poniendo idDep = $("#idDep option:selected").val() y pruebalo. Me comentas
 
Zeus, bienvenido a Stackoverflow. Yo no veo la palabra WHERE por ningún lado en tu código, ¿dónde filtras los municipios según el departamento? Me parece que tu clase municipioData debería tener un método getByDepartamento al cual le pases el id del departamento y ejecute una consulta parecida a SELECT municipio FROM municipios WHERE id_departamento= el-id-pasado;
 
ZEUS en que parte debería ir la clausula WHERE?
Se supone que si no he seleccionado ningún departamento no debería de mostrar ningún municipio en el select de municipio y lo esta mostrando
 
Tu clase debería tener un método más o menos así: public static function getByDepartamento($id_departamento){ $sql = "select * from ".self::$tablename." WHERE id_departamento=".$id_departamento; $query = Executor::doit($sql); return Model::many($query[0],new municipioData()); }... Pero hay más cosas a prevenir, como los posibles riesgos de Inyección SQL. El hecho es que en tu código actual no filtras los datos, no tienes una función que lo haga en la clase y debes dotar a tu clase de esa función.
Si los está mostrando es porque el archivo municipioData.php que llamas aquí: $.post("municipioData.php", { idDep: idDep }, function(data){, muestra de alguna manera los municipios. La máquina no hará nada que tú no le digas que haga. ¿Tú revisaste lo que hace el archivo municipioData.php?. Si tú le dices que diga "Pepe", dirá "Pepe", si tú le dices que muestre los municipios, mostrará los municipios.
 
Todo está bien, lo único que tienes que añadir es en la consulta donde te traes los municipios añade la sentencia "where id_departamento = " y concatenas con la variable idDep que la envías en el AJAX. Suponiendo que en la tabla municipios están relacionados con el departamento.
 
12:31 AM
No @HenryParra, tiene que crear otro método que filtre por id_departamento. Es posible que el método getAll sea necesario para los casos en que se necesite obtener todos los municipios sin ningún criterio.
 
@A.Cedano ¿Para qué un método getAll donde sólo requiere traerse ciertos datos siempre?, no tiene sentido. El select siempre va a tener los municipios del dpto seleccionado, no todos.
 
Me dejaron perdido con los comentarios :D
 
@Zeus Tú con el AJAX, al solicitar los datos envías la variable idDep, que contiene el valor de la opción seleccionada en el select departamento. En la función donde generas la consulta traes todos los datos de la tabla municipios sin hacer el filtro de la llave foránea del departamento, a la consulta debes agregarle la condición "WHERE" para traerse los municipios que en la llave foránea tengan el valor de la variable idDep
 
que debo cambiar del código del formulario del select municipio. <select class="form-control" id="idMun" name="idMun" required> <option value="">-- Escoja una opción --</option> <?php foreach (municipioData::getAll() as $municipio):?> <option value="<?php echo $municipio->idMun; ?>"><?php echo $municipio->nombre; ?></option> <?php endforeach; ?> </select>
 
@HenryParra en una aplicación es posible que en ocasiones se necesite listar todos los municipios existentes sin ningún filtro.
 
12:31 AM
Bueno, no entendí nada y seguí con el problema
por favor alguien colabore me no he podido solucionar y necesito poder continuar con el proyecto
o es que en la estructura que estoy utilizando es más complicado?
 
Zeus, ¿podrías editar la pregunta poniendo el contenido del archivo municipioData.phppara poder ayudarte?
 
ya agregue el código, creo que estoy más perdido que mamá del chavito
 

last day (14 days later) »