martes, 3 de abril de 2012

xajax con Zend Framework

Holas, hace poco me llegó un proyecto ya trabajado en Zend en parte, en realidad se me pidió muchas cosas con ajax y jquery y tiempo es lo que menos tenía, así que traté de hacerlo con xajax en Zend tuve que leer un poquito (foros) consultar a unos amigos Joaquin Tarazona (jmike410@gmail.com) .

Bueno en realidad fue más fácil de lo que me imaginé, así que ahí va:

Paso 1:  Nos descargamos la librería XAJAX: http://xajaxproject.org/en/download/ esta carpeta contiene archivos PHP y JS, copiamos la carpeta "XAJAX" en el directorio "public":



Paso 2: Nos dirigimos a nuestro modulo default y al controlador index:


En este paso abrimos el archivo y agregamos lo siguiente:


En la Linea 1: es  para agregar la librería PHP de xajax, como observan lo busca dentro de public, probé copiando la carpeta xajax_core que es la que contiene los PHP's en la carpeta library de Zend y funciona bien, si lo deseas así solo tienen que quitar "../public/js/", pero si les gusta que todo esté en el cliente osea en el public déjenlo como muestra la imagen.

En la linea 16 llamo a mi método CargarXajax para iniciarla

Las lineas del 19 al 26 es importante porque me permite activar el debug y registrar los métodos que llamo en el layout y las que este se conectará en el controller.

Las lineas del 28 al 35 es el método que ente caso me enviará un mensaje "Mensaje con xajax" al div con el ID llamado "divMessage" ante cualquier evento que se programe en el layout.

Paso 3: Ahora nos dirigimos al layout y abrimos a la vista que corresponde el controlador para agregar el método que generara los scripts JS para que se conecte con nuestro controlador.


Abrimos el archivo:



Linea 2 llamamos a un método que imprimirá las llamadas a los archivos JS necesarios y los scrips que se necesiten:


Linea 5: es un mensaje de prueba desde el controlador  xD

Linea 7: creamos un evento onclick dentro de este llamo al método xajax_test() todos mis funciones debo prefijarlo con el "xajax_" se acuerdan que en mi controlador registré la funcion test y tengo un método test. Bueno la cosa es simple, solo creo mi función prefijado en mi layout, en mi controlador lo registro e inmediatamente creo el método para hacer el retorno de mi objResponse.

Linea8: es un tag de tipo DIV con un ID que me sirve de identificador para decirle en mi método test de mi controlado donde es que quiero imprimir mis cambios ajax.


Espero que les sirva de algo este pequeño fix


Un cordial saludo, comenten y toda recomendación es bienvenida.








1 comentario: