» 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.