Estoy desarrollando un paquete de joomla. el cual tiene un modulo y un componente con interfaz en el backend y en el frontend. dentro de mi modulo tengo una interfaz en la cual tengo dos combos o select anidados con los datos provincia y municipio, cuando selecciono el primero deben cambiar los datos del segundo. Esta operación la estoy desarrollando en el evento onchange del select y ejecuto un metodo javascript en el cual ejecuto el ajax que va a interactuar con un servicio api donde me retorna los municipios asociados a esa provincia seleccionada. El ajax va a llamar un método que tengo desarrollado en el controller del componente que es el encargado de interactuar con el servicio y retornar los valores en el response del mismo. El error que estoy teniendo es que las rutas estan bien escritas y la ejecución de la misma me retorna un error 404.
En mi web estoy usando url amigables y por casualidad las desactive y si me funciono bien, pero esa es la cuestión que no puedo desactivar las url amigables. aca les comparto los codigos asociados a lo que tengo hecho para ver en que me pueden ayudar:
vista del modulo con el evento onchange
Code: Select all
<div class="row">
<div class="col-xs-6">
<label>Provincia:</label>
<select name="provincia" id="provincia" onchange="getMunicipio()">
<option value="0" >Seleccione...</option>
<?php for ($i=0; $i<count($provincias); $i++) {
echo "<option value=" . $provincias[$i]->idprovincia . ">" . $provincias[$i]->provincia . "</option>";}?>
</select>
</div>
<div class="col-xs-6">
<label>Municipio:</label>
<select name="municipio" id="municipio">
<option value="0" >Seleccione...</option>
</select>
</div>
</div>
Code: Select all
function getMunicipio() {
var myAjaxTrigger = new createAJAX(); //Ajax object handle
var provincia = document.getElementById('provincia').value;
myAjaxTrigger.async_call('index.php', 'option=com_poblacion&view=clasificados' + '&task=get_municipio&format=raw' + '&id=' + provincia, endGetMunicipio);
}
function endGetMunicipio(responseText)
{
document.getElementById('municipio').innerHTML = responseText;
return;
}
Code: Select all
function get_municipio() {
try {
$provincia = $this->getURLProvincia();
$idprovincia = JRequest::getVar("id");
$parametros = array(idprovincia => $idprovincia);
$gob_token = $this->creaToken($idprovincia);
$ch = curl_init($provincia[0]->direccion . "/servicio/municipio");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->setHeaders($gob_token));
curl_setopt($ch, CURLOPT_POSTFIELDS, $parametros);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
$array = $this->limpiarCadena($response);
$result = '<select name="municipio" id="municipio" onchange="getConsejo()">
<option value="0">Seleccione...</option>';
for ($i = 0; $i < sizeof($array); $i++) {
$result .= '<option value="' . $array[$i]->idmunicipio . '" >' . $array[$i]->municipio . '</option>';
}
$result .= '</select>';
echo $result;
} catch (Exception $e) {
echo 'error', $e->getMessage();
}
}
Gracias.
Dariel