SELECT DEPENDIENTE MODELO MVC
Publicado por Cristhian Kasco (1 intervención) el 25/08/2023 23:05:11
Hola con todos espero me puedan dar la mano tengo un problema con un select dependiente la estructura es cargo el select provincias y dependiendo del select provincias se cargan los cantones al momento he agregado el siguiente javascript:
en el controlador tengo esto:
y en el modelo tengo:
EL ASUNTO ES QUE INGRESA AL CONTROLADOR PERO AL PARECER ME RETORNA UN ARRAY VACIO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
provincia.addEventListener("change", function (e) {
const url = base_url + "clientes/obtenerCantones";
//hacer una instancia del objeto XMLHttpRequest
const http = new XMLHttpRequest();
//Abrir una Conexion - POST - GET
http.open("POST", url, true);
http.send(
JSON.stringify({
provincia: provincia.value
})
);
//verificar estados
http.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
const res = JSON.parse(this.responseText);
let html = "";
html += "<select id='canton' name='canton'><option value='0'>SELECCIONE</option>";
console.log(res.cantones.length);
if (res.cantones.length >= 0) {
res.cantones.forEach((canton) => {
html += `<option value="${canton.id}">${canton.canton}</option>`;
});
}
html += "</select>";
canton.innerHTML = html;
}
};
});
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function obtenerCantones()
{
$array["cantones"] = array();
if (isset($_POST['provincia'])) {
$id_provincia = strClean($_POST['provincia']);
$data = $this->model->getCantones($id_provincia);
for ($i = 0; $i < count($data); $i++) {
$result['id'] = $data[$i]['id'];
$result['canton'] = $data[$i]['canton'];
array_push($array["cantones"], $result);
}
}
echo json_encode($array, JSON_UNESCAPED_UNICODE);
die();
}
1
2
3
4
5
public function getCantones($id_provincia)
{
$sql = "SELECT * FROM cantones WHERE id_provincia = '$id_provincia'";
return $this->selectAll($sql);
}
EL ASUNTO ES QUE INGRESA AL CONTROLADOR PERO AL PARECER ME RETORNA UN ARRAY VACIO
Valora esta pregunta


0