Créer un formulaire en XHTML
On utilise la balises <form> </form>
Cette balise prend 2 arguments, l'un pour définir la façon de communiquer avec le serveur (method="post" ou method="get"), l'autre pour indiquer l'adresse à suivre lors de l'envoie du formulaire (action="envoye.php", adresse du script qui va interpréter et utiliser le contenu du formulaire).
<form method="post" action="envoye.html">
...
</form>
Les champs possible sont les suivants :
-
texte sur une ligne : <input type="text"/>
-
texte sur plusieurs lignes : <textarea rows="5" cols="30"> </textarea>
-
texte étoilé (mot de passe) : <input type="password"/>
-
téléchargement : <input type="file"/>
-
case à cocher : <input type="checkbox"/>
-
boutons radio : <input type="radio"/>
-
sélection dans une liste : <select> </select>
-
gestion des option au sein de la sélection : <optgroup> et <option>
-
soumission du formulaire : <input type="submit"/>
-
remise à zéro du formulaire : <input type="reset"/>
Chaque champ, pour pouvoir être traité ensuite, doit être identifié :
<input name="montexte" id="montexte" type="text"/>
L'attribut name sert à retrouver un objet (ici la balise <input>) afin de l'exploiter en JavaScript. Il est également utilisé lors de l'envoi du formulaire vers un serveur afin d'extraire les données saisies par l'utilisateur.
L'attribut id sert à nommer un objet dans une page web. Cependant, contrairement à l'attribut name, tous les id doivent être uniques dans toute la page. Ils servent également à la balise <label> que nous présenterons plus loin.
Il est recommandé d'utiliser un label c'est à dire la balise <label> permettant d'associer une légende à un champ d'entrée afin que tous les utilisateurs puissent utiliser votre formulaire sans problème.
L'attribut for sert à spécifier le nom du champ d'entrée dont le label est la légende.
<label for="montexte">Votre nom </label> :
<input name="montexte" id="montexte" type="text" value="Nom"/>
L'attribut tabindex permet de fixer l'ordre de passage d'un champ à l'autre quand on utilise la tabulation.
Pour rendre plus lisible les formulaires, on peut regrouper les champs qui vont ensemble à l'aide de la balise <fieldset>. Dans chaque groupement, la balise <legend> (obligatoire) permet de donner un titre qui apparaît dans l'encadrement du groupe.
<form method="post" action="envoye.html">
<fieldset class="principal">
<legend>Vous</legend>
<p><label for="montexte">Votre nom </label> :
<input name="montexte" id="montexte" type="text" value="Nom" tabindex="10"/></p>
<p><label for="monpass">Votre mot de passe </label> :
<input name="monpass" id="monpass" type="password" value="nom" tabindex="20" /></p>
</fieldset>
<fieldset class="secondaire">
<legend>Votre demande</legend>
<p><label for="upload">Choisissez votre fichier </label>
<input name="upload" id="upload" type="file" value="telechargez" tabindex="40"/></p>
<p>
<label for="cocher">Cochez si vous voulez! </label>
<input id="cocher" name="cocher" type="checkbox" value="cochez" tabindex="50"/>
</p>
<p><label for="grandtexte">Description</label> :
<textarea id="grandtexte" name="grandtexte" tabindex="30" rows="5" cols="30">quelque de chose de plutôt long pour voir...</textarea></p>
</fieldset>
<fieldset class="tertiaire">
<legend>Compléments</legend>
<p>
<label for="radio1">Fille </label><input name="radio" id="radio1" type="radio" value="choisissez" tabindex="60"/>
<label for="radio2">Garçon </label><input name="radio" id="radio2" type="radio" value="ou choisissez" tabindex="70"/>
</p>
<p>Choisissez dans la liste : <select name="listeD" tabindex="80">
<optgroup label="facile">
<option id="cours1" value="cours1">Cours 1</option>
<option id="cours2" value="cours2">Cours 2</option>
</optgroup>
<optgroup label="pas facile">
<option id="cours3" value="cours3">Cours 3</option>
</optgroup>
</select></p>
<p><input type="submit" value="Appuyez pour valider" tabindex="90"/></p>
</fieldset>
</form>