viernes, 9 de abril de 2010

Javascript function in CakePHP from a controller's function

Sometimes, in CakePHP I've needed to use a javascript function whose code was the code from a function I had created previously in one of my controller. Specifically when I wanted to show a list of users with a link for each user to modify their profile in a "flash element" of CakePHP. Therefore, and as I find it very useful, I'm going to specify the steps to do this.

1 .- Having created the function we'll use in the controller. For example:

function modifica_alumno($id_alumno){
...
}

2 .- We use for example, scroll.js (we could use any javascript file but in this case I've chosen this), in folder app / webroot / js, we edit it and introduce something like:

function perfil_alumno(id_alumno){
var aDIV = "left-center";
var aURL = "/alumnos/modifica_alumno/"+id_alumno;
new Ajax.Updater(aDIV,aURL, {method:'post', asynchronous:true, evalScripts:true});
}


3 .- In another controller's function we refer to the JavaScript function we've just created and display the results by a "flash."

function buscar_alumno($nombre){

...

foreach($consulta as $sol){

$listado .='<a style="text-decoration:none; color:green;" href="#" onclick="perfil_alumno('.$id_alumno.');return false;"> - '.$alumno['nombre'].' '.$alumno['apellido1'].' '.$alumno['apellido2'].'</a><br/><br/>';

}
$this->flash($listado,'index');

}

Here we choose where we want the function to be load in the div, we refer to the controller's function we want to use and ready.

Greetings!!

No hay comentarios:

Publicar un comentario