CapÃtulo 37. Manejo de XForms
XForms define una variación
de los tradicionales formularios web que permite que éstos
sean usados en una variedad más amplia de plataformas y
navegadores, e incluso en medios no-tradicionales como documentos
PDF.
La primera diferencia clave en XForms es el modo en que el
formulario es enviado al cliente. XForms para Autores HTML
contiene una descripción detallada de cómo crear
XForms; para los propósitos de este tutorial, tan solo
estaremos viendo un ejemplo sencillo.
Ejemplo 37-1. Un formulario XForms de búsqueda simple <h:html xmlns:h="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2002/xforms">
<h:head>
<h:title>Búsqueda</h:title>
<model>
<submission action="http://example.com/buscar"
method="post" id="s"/>
</model>
</h:head>
<h:body>
<h:p>
<input ref="q"><label>Buscar</label></input>
<submit submission="s"><label>Iniciar</label></submit>
</h:p>
</h:body>
</h:html> |
|
El anterior formulario despliega una caja de entrada de texto
(llamada q), y un botón de
enviar. Cuando el botón de enviar es pulsado, el formulario
será enviado a la página indicada por
action.
Aquà es en donde empieza a lucir diferente desde el punto de
vista de su aplicación web. En un formulario HTML normal, los
datos serÃan enviados como
application/x-www-form-urlencoded, sin embargo,
en el mundo de XForms, esta información es enviada como datos
en formato XML.
Si ha tomado la decisión de trabajar con XForms, entonces
probablemente quiera los datos en XML, en ese caso, debe echar un
vistazo a $HTTP_RAW_POST_DATA en donde
encontrará el documento XML generado por el navegador, el
cual puede pasar a su motor XSLT o intérprete de documentos
favorito.
Si no se encuentra interesado en dar formato, y sólo desea
que los datos sean cargados en la variable $_POST
tradicional, puede indicarle al navegador del cliente que
envÃe sus datos como
application/x-www-form-urlencoded modificando el
atributo method al valor
urlencoded-post.
Ejemplo 37-2. Uso de un XForm para poblar $_POST <h:html xmlns:h="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2002/xforms">
<h:head>
<h:title>Búsqueda</h:title>
<model>
<submission action="http://example.com/search"
method="urlencoded-post" id="s"/>
</model>
</h:head>
<h:body>
<h:p>
<input ref="q"><label>Buscar</label></input>
<submit submission="s"><label>Iniciar</label></submit>
</h:p>
</h:body>
</h:html> |
|
Nota:
Al momento en que se escriben estas lÃneas, muchos
navegadores no ofrecen soporte para XForms. Revise la
versión de su navegador si el anterior ejemplo falla.