Punksolid Tecnologia, Curiosidades, Sistemas de Informacion y un poco de Religion

15sep/093

Como Actualizar un Div con Ajax y CakePHP 1.2

Empezaré suponiendo que tienes nociones básicas sobre CakePHP1.2 y sabes hacer de perdida un CRUD.

Agregar las librerías javascript

Cakephp tiene una buena integración con las librerías javascript de prototype y scriptaculous, las cuales debemos descargarlas primero desde la pagina de descarga de scriptaculous y la de descargas de prototype, la de prototype es un archivo js. Renombrar a prototype.js y ponlo en "app/webroot/js".

La librería de scriptaculous es un archivo .zip que contiene una carpeta src que a su vez contiene muchos archivos js los cuales debemos copiar y ponerlos también en la app/webroot/js.

Añadir los helpers javascript y ajax al controlador

Ahora necesitamos agregar los helpers de javascript y de ajax. Una opcion es agregarlos a cada controlador a como la vayamos necesitando o agregarlos al app_controller para que estén disponibles en todos los controladores.

class AppController extends Controller {
var $helpers = array('Html','Form','Javascript','Ajax');
 
}
<h3>Vistas</h3>
Cada vista que sue javascript debemos añadirle las siguientes etiquetas
<?php
echo $javascript->link('prototype');
echo $javascript->link('scriptaculous');
?>
<h2>Ajax 3 - testing ajax link and button</h2>
<?php
        $link_array1 = array('controller'=>'tweets' ,'action'=>'simple_ajax1_fcn');
		//the function to execute: function ajaxfcn1 in controller tests
        $link_array2 = array( 'update' => 'divout');
 
       echo ($ajax->link('this an ajax link', $link_array1,$link_array2));
        echo "<br/><br/>";
?>
 
<br/>
<div id="divout">
the div to update
</div>

Controlador

<?php
class TweetsController extends AppController {
 
        var $name = 'Tweets';
        var $uses = array();            // prevent cake from looking for a database model
		var $helpers = array('Html','Ajax','Javascript');
        function index() {
 
        }
        function simple_ajax1_fcn() {
                $this->autoRender = false;
                echo "text from ajax call";
        }
}?>

Talvez te interese leer

Comentarios (3) Trackbacks (0)
  1. De hecho en la de scriptaculos ya vienen las de prototype, así que no es necesario descargarse los 2 paquetes.
    PD.- Me ganaste el post jhajha iba a hacer uno de lo mismo pero con un form.
    Saludos chemin

  2. @Jorge
    Pues hazlo con un form para que nos quede mas claro a todos we

  3. Lo he hecho y aquí pueden revisarlo, http://kbw3.punksolid.com/
    saludos.


Leave a comment

(required)

Aún no hay trackbacks.