
Nous y sommes presque. Il ne nous reste plus qu'à agrémenter notre formulaire de quelques dernières fonctionnalités (comme la validation), puis nous pourrons ajouter le bouton d'envoi du formulaire.
Regrouper les champs
Si votre formulaire grossit et comporte beaucoup de champs, il peut être utile de les regrouper au sein de plusieurs balises
<fieldset>. Chaque <fieldset> peut contenir une légende avec la balise<legend>. Regardez cet exemple :
method="post" action="traitement.php"
Vos coordonnées <!-- Titre du fieldset -->
for="nom"Quel est votre nom ?
type="text" name="nom" id="nom"
for="prenom"Quel est votre prénom ?
type="text" name="prenom" id="prenom"
for="email"Quel est votre e-mail ?
type="email" name="email" id="email"
Votre souhait <!-- Titre du fieldset -->
Faites un souhait que vous voudriez voir exaucé :
type="radio" name="souhait" value="riche" id="riche" for="riche"Etre riche
type="radio" name="souhait" value="celebre" id="celebre" for="celebre"Etre célèbre
type="radio" name="souhait" value="intelligent" id="intelligent" for="intelligent"Etre encore plus intelligent
type="radio" name="souhait" value="autre" id="autre" for="autre"Autre...
for="precisions"Si "Autre", veuillez préciser :
name="precisions" id="precisions" cols="40" rows="4"
Sélectionner automatiquement un champ
Vous pouvez placer automatiquement le curseur dans l'un des champs de votre formulaire avec l'attribut
autofocus. Dès que le visiteur chargera la page, le curseur se placera dans ce champ.
Par exemple, pour que le curseur soit par défaut dans le champ
prenom :
type="text" name="prenom" id="prenom" autofocus
Rendre un champ obligatoire
Vous pouvez faire en sorte qu'un champ soit obligatoire en lui donnant l'attribut
required.
type="text" name="prenom" id="prenom" required
Le navigateur indiquera alors au visiteur, si le champ est vide au moment de l'envoi, qu'il doit impérativement être rempli.
:required
{
background-color: red;
}
Le bouton d'envoi
Il ne nous reste plus qu'à créer le bouton d'envoi. Là encore, la balise
<input /> vient à notre secours. Elle existe en quatre versions :type="submit": le principal bouton d'envoi de formulaire. C'est celui que vous utiliserez le plus souvent. Le visiteur sera conduit à la page indiquée dans l'attributactiondu formulaire.type="reset": remise à zéro du formulaire.type="image": équivalent du boutonsubmit, présenté cette fois sous forme d'image. Rajoutez l'attributsrcpour indiquer l'URL de l'image.type="button": bouton générique, qui n'aura (par défaut) aucun effet. En général, ce bouton est géré en JavaScript pour exécuter des actions sur la page. Nous ne l'utiliserons pas ici.
Pour créer un bouton d'envoi on écrira donc par exemple :
type="submit" value="Envoyer"
Lorsque vous cliquez sur le bouton « Envoyer », le formulaire vous amène alors à la page indiquée dans l'attribut
action. Souvenez-vous, nous avions imaginé une page fictive : traitement.php.
Le problème, c'est que vous ne pouvez pas créer cette page seulement en HTML. Il est nécessaire d'apprendre un nouveau langage, comme le PHP, pour pouvoir « récupérer » les informations saisies et décider quoi en faire. Cela tombe bien, j'ai aussi rédigé un cours sur le langage PHP pour ceux que cela intéresse ! Ce cours existe également en livre :
Concevez votre site web avec PHP et MySQL, de Mathieu Nebra, paru chez Simple IT dans la collection le Livre du Zéro, ISBN 978-2-9535278-1-0.En résumé
- Un formulaire est une zone interactive de la page, dans laquelle vos visiteurs peuvent saisir des informations.
- On délimite un formulaire avec la balise
<form>à laquelle il faut ajouter deux attributs :method(mode d'envoi des données) etaction(page vers laquelle le visiteur sera redirigé après envoi du formulaire et qui traitera les informations). - Une grande partie des éléments du formulaire peut s'insérer avec la balise
<input />. La valeur de son attributtypepermet d'indiquer quel type de champ doit être inséré :text: zone de texte ;password: zone de texte pour mot de passe ;tel: numéro de téléphone ;checkbox: case à cocher ;- etc.
- La balise
<label>permet d'écrire un libellé. On l'associe à un champ de formulaire avec l'attributfor, qui doit avoir la même valeur que l'iddu champ de formulaire. - On peut rendre un champ obligatoire avec l'attribut
required, faire en sorte qu'il soit sélectionné par défaut avecautofocus, donner une indication dans le champ avecplaceholder… - Pour récupérer ce que les visiteurs ont saisi, le langage HTML ne suffit pas. Il faut utiliser un langage « serveur » comme PHP… Si vous voulez aller plus loin, il va donc falloir apprendre un nouveau langage !