Chapitre 38. 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 38.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 38.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.