Utiliser les XForms

» XForms est une variation des formulaires web traditionnels, qui permet leur utilisation sur diverses plates-formes et navigateurs, et m�me sur des m�dias moins traditionnels comme les documents PDF.

La premi�re diff�rence des XForms est leur pr�sentation au client. » XForms for HTML Authors contient une description d�taill�e de la cr�ation des XForms, compl�mentaire de notre tutoriel : nous allons nous consacrer � un exemple simple.

Exemple #1 Un simple formulaire XForms de recherche

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Le formulaire ci-dessus affiche une bo�te de texte (appel�e q ), et un bouton de soumission. Lorsque ce bouton est utilis�, le formulaire est envoy� � la page d'action.

C'est l� que la diff�rence se fait sentir, du point de vue de l'application web. Dans un formulaire HTML, les donn�es sont envoy�es au format application/x-www-form-urlencoded. Pour un XForm, c'est en fait un format XML qui est utilis�.

Si vous avez d�cid� d'utiliser des XForms, vous attendez peut �tre des donn�es au format XML, et dans ce cas, regardez dans la variable $HTTP_RAW_POST_DATA, o� vous trouverez le document XML g�n�r� par le navigateur, que vous pourrez passer � votre moteur XSLT favori.

Si vous n'�tes pas int�ress� par ce format, et que vous voulez simplement exploiter vos donn�es avec la variable $_POST, vous pouvez demander au navigateur de les envoyer au format application/x-www-form-urlencoded, en modifiant l'attribut de m�thode method et en lui donnant la valeur de urlencoded-post.

Exemple #2 Utiliser des XForms pour remplir $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</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>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Note: Au moment de la r�daction de cet article, de nombreux navigateurs ne supportent pas les XForms. V�rifiez la version de votre navigateur si les exemples de ce tutoriel ne fonctionnent pas.