Usuario:ManuelRomero/PHP/xajax/introduccion

Objetivo

 * La intención es que php genere una página html que entrega al cliente y que contenga código ajax, de modo que cuando el cliente lo necesite solicite recargar solo parte de la página.
 * En este caso pretendemos que sea el servidor el que genere este código, y no generarlo directamente en el cliente.
 * Existen situaciones en las cuales puede ser interesante aplicar esta forma de proceder.


 * Muchas de estas librerías suelen apoyarse en librerías JavaScript como jQuery para la ejecución de código en el cliente.
 * Podemos ver estas librerías en
 * 1) http://ajaxpatterns.org/PHP_Ajax_Frameworks
 * 2) http://www.ribosomatic.com/articulos/top-librerias-ajax-dhtml-y-javascript/
 * Vamos a estudiar un poco por encima Xajax, por ser una librería de código abierto y de sencillo uso.
 * Ha estado muchos años caída, pero actualmente se ha recuperado el proyecto y por lo tanto lo vamos a utilizar

Xajax
http://www.xajax-project.org/en/home/ si no está disponible ir a esta ubicación de githun https://github.com/Xajax/Xajax
 * Para instalarlo vamos a la página oficial
 * Esta página suele estar con mucha frecuencia hakeada.
 * Vamos a usar una actualización de xajax llamada Jaxon

http://www.xajax-project.org/en/docs-tutorials/api-docs/xajax-core/xajax-inc-php/xajax/
 * En la sección download podemos bajar la versión 0.6 (es beta, pero funciona ok). Para un sitio en producción se recomienda la última estable (0.5)
 * Nos interesan las carpetas xajax_core y xajax_js, las cuales incorporaremos a nuestro proyecto
 * Además en el fichero php donde vayamos a usarlo lo incluiremos
 * Nosotros usaremos la clase xajax, podemos ver su documentación en la misma página sección doc&tutorial

Usando xajax

 * Para usar esta tecnología con esta clase
 * La clase necesita incluir una serie de código en javascript en la página que vamos a generar, printJavascript
 * Prueba a ver el resultado de la página con lo escrito hasta ahora. Para ello ejecuta el proyecto, y aunque no aparezca nada, mira el código de la página en el cliente y podrás observar algo parecido

{{Plegable|hide|Viendo el resultado del código escrito|

Es decir el cliente puede solicitar para recargar solo parte de la página que se ejecute una función. Estas funciones las debemos de registrar primero
 * Podemos también establecer (solo para el desarrollo), que nos dé un traceo del proceso.
 * A continuación debemos registrar aquellas funciones que queremos ejecutar en modo ajax.


 * Esto implicará que se en la página html se crea una función que tiene este nombre con el prefijo xajax_
 * En el caso anterior se creará una función llamada xajax_saludar(...)
 * Y para terminar este proceso de configuración, debemos usar el método que se encargue de procesar las llamadas ajax que se reciban.

{{Resumen| }}
 * El método processRequest debe ser invocado antes de sacar ninguna salida ni echo ni código html

Implementando el método xajax en el servidor
http://www.xajax-project.org/en/docs-tutorials/api-docs/xajax-core/xajaxresponse-inc-php/xajaxresponse/
 * Ahora en el servidor hay que escribir el código de la función que hemos registrado
 * Implementarmos lo que queremos que haga
 * Para comunicarnos con el cliente necesitamos un objeto de la clase xajaxReponse
 * Indicando acciones en el cliente
 * por ejemplo podemos poner un mensaje que se visualizará en el cliente
 * También podemos indicar que se ejecute un script


 * Poniendo datos para el cliente
 * Una de los objetivos principales será pasar valores al cliente para que actualice la página
 * Podremos actuar sobre los distintos elementos del html volviendo elementos ocultos o mostrando otros
 * Para pasar valores usamos el método assign o append
 * En el cliente tendremos un elemento con id saludo que se sustituirá por el texto especificado

Invocando a la función desde el cliente

 * Para terminar el proceso lo que nos queda es la parte de cliente
 * Ahora tenemos que hacer que desde el cliente podamos invocar a este método
 * En este caso lo vamos a hacer desde un formulario
 * Nos vamos a crear un formulario donde vamos a invocar a una funcion en el cliente
 * Esa función es la que va a invocar a la función del servidor
 * Es importante ahora el id del formulario que va a ser el nombre de array con el que el servidor va a recibir los datos del mismo
 * Al mismo tiempo establecemos un id para ubicar el lugar donde pongamos el texto que el servidor nos ponga
 * Ahora queda implementar la función saludar
 * Como ya sabéis se recomienda escribir las funciones en un fichero aparte
 * y ya en el fichero saludar.js escribimos la función

Ejemplo

 * Hacemos un programa que nos haga o el cuadrado de un número o su raiz cuadrada meditante llamadas ajax


 * Descargamos los ficheros de github git clone git:/githib.com/MAlejandroR/xajax