Saltar la navegación

3.1.2.- Xajax (II).

Para ejecutar el código de validación cuando se envíe el formulario deberás crear una función JavaScript y asignarla al evento "onsubmit" del formulario.

<form id='miForm' action="javascript:void(null);" onsubmit="enviarFormulario();">

La función JavaScript "enviarFormulario()" utilizará la función "xajax_validarFormulario()" que ha sido creada automáticamente por Xajax al registrar la función correspondiente. Además se encargará de deshabilitar el botón de envío y de cambiar el texto que muestra:

xajax.$('enviar').disabled=true;
xajax.$('enviar').value="Un momento...";
xajax_validarFormulario (xajax.getFormValues("miForm"));

Este método de llamar a una función registrada se conoce como asíncrono. Una vez realizada la llamada a la función, el procesamiento del formulario continúa sin esperar a recibir una respuesta. Es por este motivo que se deshabilita el botón de enviar el formulario. Cuando se recibe la respuesta de la función, se producen en el formulario los cambios que se indican en la misma.

Existe en Xajax otro método de realizar llamadas síncronas a una función registrada: el método: "xajax.request()".

respuesta = xajax.request({xjxfun:"validarFormulario"}, {mode:'synchronous', parameters: ["valor1", "valor2", …]})

La función PHP a la que se realiza la llamada, debe recibir tantos parámetros como se pasan. Para indicar el valor que se devuelve, puede usar el método "setReturnValue()" de la clase xajaxResponse.

$respuesta = new xajaxResponse();
. . .
$respuesta->setReturnValue("valorDevuelto");
return $respuesta;

Fíjate que para realizar estas acciones se utiliza el objeto JavaScript: xajax. Su método "getFormValues()" se encarga de obtener los datos de un formulario

Para acceder a los elementos de una página HTML mediante JavaScript mediante su atributo "id", se puede usar:

objUsuario = document.getElementById("usuario");

Y si quieres conocer su valor:

valorUsuario = objUsuario.value;
Imagen de una captura del navegador Firefox en la que se utiliza Firebug para mostrar los parámetros POST enviados en una petición AJAX.
Captura Firefox (Elaboración Propia.)

Si utilizas La herramientas de desarrollador de Firefox puedes comprobar que los parámetros se envían mediante POST.

Es importante que tengas clara la estructura en clases de la librería Xajax, y sepas diferenciar entre las clases PHP y las clases JavaScript de la misma. Las principales clases son las que has visto en el ejemplo anterior: xajax y xajaxResponse en cuanto a clases PHP, y xajax en cuanto a JavaScript.