Autour du Web
Cours

Créer un formulaire en XHTML

Déclaration du formulaire

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"/>

Identification des champs

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.

Etiquettes

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"/>

Ordre

L'attribut tabindex permet de fixer l'ordre de passage d'un champ à l'autre quand on utilise la tabulation.

Groupement de champs

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.

ExempleExemple

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

Absolument div ! (page Précédente)
AccueilImprimerRéalisé avec SCENARI