Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
<script type="text/javascript"> new Event.observe("rubro_id", "change", function(){ new AJAX.viewRequest({ action: "busqueda/obtener_subrubros/"+$F("rubro_id"), container: "div_subrubro" }) }) </script>
function obtener_subrubros($rubro_id){ $this->set_response("view"); $this->subrubros = $this->Subrubro->find("rubro_id = '$rubro_id'"); } function ver_sugerencias(){ $this->set_response("view"); $nombre = $this->request("nombre"); $this->detalleitem = $this->Detalleitem->find_all_by_sql("SELECT * FROM detalleitem WHERE nombre like '%$nombre%' AND rubro_id = '$rubro_id'"); }
Comentarios
Saludos
el live search si funciona, el problema es el siguiente:
necesito enviar por medio del AJAX.viewRequest una variable a dos funciones diferentes que se encuentran en un controlador. se entiende?
el AJAX.viewRequest, si te fijas tiene una accion que hace lo siguiente
envia el helper $F a busqueda/obtener_subrubros por medio de la URL, pero tambien necesitoqueenvie esa mismavariable a la funcion buqueda/ver_sugerencias pero que no sea por medio de la URL, que sea posible rescatar con $rubro_id = $this->request("rubro_ïd");
si ves el codigo que mostre antes puedes entender mejor.
OJalá me ayudáran. Gracias
si es asi, necesitaria un AJAX,viewRequest dentro de otro? y si fuera asi, como rescato la variable en la funcion si la envio con parameters
<!-- s:?: --><img src="{SMILIES_PATH}/icon_question.gif" alt=":?:" title="Question" /><!-- s:?: --> <!-- s --><img src="{SMILIES_PATH}/icon_lol.gif" alt="" title="Laughing" /><!-- s -->
A ver si te comprendo,
Necesitas invocar dos métodos del controlador simultáneamente después de recibir un evento (ej. onclick sobre un botón), entonces si es eso, la solución es colocar un llamado a cada método mediante un AJAX.viewRequest para cada uno, para esto puedes colocar dos AJAX.viewRequest en una función JavaScript y en tu evento invocar esa función JavaScript.
Por ejemplo, suponiendo que tienes un botón y que al hacer click en ese botón quieres mostrar un saludo en ingles y otro en español en capas diferentes, quedaría algo así:
...
<input id="saludo" onclick="saludar();">
...
Nota: Lo del saludo es solo por colocar un ejemplo sencillo.
esta es la primera funcion ke recibe el primer view.Request y no hay ningun problema.
pero es en esta funcion, que no recibe la variable enviada con el segundo view.Request. porque esta funcion a su vez recibe una variable nombre enviada con el autocompletar.
si te das cuenta para realizar la consulta necesito la variable $nombre, enviada con el autocompletar y la variable $rubro_id que necesito enviar con el view.Request al producirce un evento.
Para javascript
Y en el controlador
La idea basicamente es utilizar un valor por defecto y de esta manera sabes cuando se busca por el rubro_id ($rubro_id!=false), y cuando es por nombre (rubro_id==false).
Utilizar un valor por defecto, te permite utilizar la accion del controlador, con parametros o sin parametros.
Si no satisface lo que necesitas, explica con mayor detalle para ayudarte a resolver el problema.
Saludos.