Hola a todos. Espero que este post (que sería mi primer aporte) sirva para aquellas personas interesadas en el uso de ajax en sus páginas pero que no tienen mucho tiempo de aprender a usarlo.
Lo primero:
¿Qué es xajax?
Xajax es un framework que permite el manejo de peticiones ajax con tener sólo conocimientos de php y html básicos.
¿A qué personas está orientado?
A personas que tienen poco conocimiento de Javascript, que saben lo básico de php y html, y a toda persona que se interese en el manejo relativamente sencillo que ofrece este framework.
¿Qué diferencia tiene con otros frameworks como mootools o jquery?
Que xajax está orientado principalmente a la programación en php, mientras que apenas se mete con javascript, es decir no es muy "invasivo"; esto que para algunos podría suponer una desventaja, para el novato que quiere desarrollar con el tiempo su propio js es una muy buena forma de programar, pues no interfiere con otras librerías js, hojas de estilo etc.
¿Qué tan potente es xajax?
Bueno, depende a qué le llames potente. A grandes rasgos xajax permite llamar procesos que regresen respuestas de muchos kb, así como múltiples respuestas en un mismo proceso, además de poder regresar respuestas html o como procesos y llamadas javascript, y es
crossbrowser
Bien, si estás interesado en probar xajax, lo primero que debes hacer es decargar la versión
0.5 (final) de
página oficial la versión 0.6 beta 1 no la recomiendo pues tiene problemas serios con varias versiones de php.
Puedes bajar la versión mínima, que ocupa poco espacio, o bien la versión standard, que además trae ejemplos y tests.
Una ves que descargues el zip, lo más importante es que te quedes con las carpetas
xajax_core
xajax_js
xajax_plugins
Para este ejemplo, tendremos esas carpetas dentro de otra carpeta llamada xajax, la cual estará en la raíz de nuestro sitio, de modo que quedaría así:
Código:
xajax
xajax_core
xajax_js
xajax_core
Ahora, en la raíz crearemos un archivo .php, se puede llamar como quieras, para este ejemplo lo llamaremos index.php
dentro del archivo colocaremos el siguiente código:
Código PHP:
Ver original<?php
//incluímos la librería xajax
@require_once("xajax/xajax_core/xajax.inc.php");//la arroba es para anular la notificacion de uso de instrucciones obsoletas
$xajax = new xajax();//Creamos un objeto xajax
//$xajax->configure("debug", true);//si queremos hacer un debug, descomentamos esta linea
$xajax->register(XAJAX_FUNCTION,"mifuncion");//registramos nuestra función o funciones que llamaremos via ajax
$xajax->processRequest();//Indicamos que xajax procesará las peticiones ajax que registramos.
$xajax->configure('javascript URI','xajax');
echo"
<html>
<head>";
$xajax->printJavascript("xajax");//Imprimimos el código JS que inicia Xajax, indicando en qué carpeta se encuentra
echo"
</head>
<body>
<div id=\"mensaje\"></div>
<input type=\"button\" value=\"Ver mensaje\" onclick=\"xajax_mifuncion();\">
</dody>
";
function mifuncion(){
$respuesta = new xajaxResponse();//Creamos una respuesta tipo xajax
$respuesta->assign("mensaje","innerHTML","Esto es una respuesta xajax");//En la variable respuesta indicamos que al objeto "mensaje" le asigne el texto de nuestra respuesta
return $respuesta;
}
?>
Analizando el código:
Primero hacemos un include al archivo principal de xajax xajax.inc.php, según la carpeta donde lo colocamos. La versión 0.5 hace que salten algunas notificaciones de instrucciones "deprecated", por lo que anteponemos el arroba. Esto con la versión 6 no sucede, pero como indiqué antes la ver. 0.6 tiene problemas con varias versiones de php.
Las demás líneas están prácticamente explícitas en los comentarios, por lo que me limitaré a explicar a grandes rasgos el mecanismo general:
Primero nuestro script de php va a generar un html con sólo un <div> y un botón.
Este div
DEBE tener un ID, ya que de esta manera al llamar nuestra función vía ajax ésta nos devolverá una respuesta en html dentro del div con el ID que especificamos.
El botón para este caso no necesita ID, lo importante es que le estamos asignando un
evento, el evento
onclick, es decir cuando el usuario presione dicho botón, ya sea con el mouse o con un enter, llamará nuestra función.
Es importante resaltar que aunque nuestra función se llama "mifuncion", para llamarla vía ajax le debemos anteponer
xajax_, es decir la llamaremos
xajax_mifuncion. Xajax hace esto con cualquier función que registremos para llamarla vía ajax.
Por el momento no le estamos pasando parámetros a dicha función, al llamarla simplemente se ejecuta la función php
mifuncion, la cual sólo genera una respuesta de texto, e indicamos mediante el
assign que lo coloque dentro (innerHTML) del objeto con el ID
mensaje, y regresamos la respuesta.
Esto hará que
sin recargar la página tengamos en el div el mensajito "Esto es una respuesta xajax".
Bien, eso es lo primero que deberías saber para comenzar. Posteriormente si les parece pondré más ejemplos donde veremos otro tipo de respuestas xajax, así como el paso de parámetros y la ejecución de código js, además de (espero) ejemplos reales de uso como selects dependientes con xajax.