Académique Documents
Professionnel Documents
Culture Documents
78
Les formulaires
1. Intérêt des formulaires
2. Exemple de formulaires
3. La balise de base <form> </form>
4. La balise <input />
5. La balise <input type=« text » />
6. La balise <label></label>
7. La balise <input type=« password » />
8. La balise <textarea> </textarea>
9. La balise <input type=« checkbox » />
10. La balise <input type=« radio » />
11. La balise <select> </select>
12. La balise <fieldset> </fieldset>
13.Nouveaux attributs HTML5
14. La balise <input /> , les boutons
15. Autres Nouveautés HTML5
https://www.w3.org/TR/html52/sec-forms.html 79
Intérêt des formulaires
Les formulaires permettent aux auteurs des pages Web d’instaurer une
communication avec les utilisateurs. Un formulaire peut servir à recueillir les
avis des visiteurs, leurs e-mails en vue d'une newsletter. Mais ça peut être
aussi un bon de commande, un sondage, un jeu, etc...
Un formulaire définit en HTML peut contenir :
Des zones de saisie de texte
Des cases à cocher
Des boutons radio
Des listes déroulantes
Des boutons
…
81
La balise <form> </form>
Les formulaires sont délimités par la balise <form> ... </form>, une balise qui permet
de regrouper plusieurs éléments du formulaire (boutons, champs de saisie,...).
Syntaxe : <form name="…" method="…" action="…" > … </form>
NAME : Nom du formulaire. Il est nécessaire en cas d'utilisation de JavaScript pour le
contrôle de saisie, par exemple.
: Adresse (URL ou e-mail) vers laquelle les données saisies vont être envoyées.
ACTION
Exemples :
1. action = "http://monserveur.com/php/monCode.php"
2. action = "mailto :webmaster@nomserveur.com"
METHOD : Il existe deux types de méthodes d’envoi du contenu du formulaire :
GET : Elle correspond à un envoi des données codées dans l'URL, et séparées de
l'adresse du script par un point d'interrogation.
POST : Le contenu du formulaire est envoyé au serveur en tant que bloc de
données pour y être traité par le CGI qui le recevra. Elle correspond à un envoi
de données stockées dans le corps de la requête (Recommandée).
82
La balise <input />
La balise input permet de créer plusieurs éléments "interactifs".
Syntaxe :
<input type="Type du champ" value="Valeur par défaut" name="Nom de l'élément" />
L'attribut NAME est essentiel car il permettra au script CGI de connaître le
champ associé à la paire nom/valeur, c'est-à-dire que le nom du champ
sera suivi du caractère "=" puis de la valeur entrée par l'utilisateur ou dans le
cas contraire de la valeur par défaut repérée par l'attribut VALUE.
L'attribut TYPE permet de préciser le type d'élément que représente la balise
INPUT, les valeurs que ce champ peut prendre sont : TEXT, CHECKBOX,
HIDDEN, RADIO, PASSWORD, FILE, RESET, SUBMIT, BUTTON, …
83
La balise <input type=« text » />
Il s'agit d'un champ de saisie de texte (Zone de texte monoligne). La taille du
champ peut être définie à l'aide de l'attribut SIZE et la taille maximale du texte saisi
grâce à l'attribut MAXLENGTH.
Attribut READONLY : le champ se trouve alors en mode lecture seule c'est-à-dire
que le texte par défaut qui s'y trouve ne peut en être effacé/modifié.
Syntaxe :
<input type="text" name="nom_du_champ" size="taille"
maxlength="taille_maximum" value= valeur du texte_par_défaut" />
Exemple :
<form method="post" action="traitement.php" name= " formNom" >
<p>Votre Nom: <input type="text" name="nom" size="30"
maxlength="20" value="Nom?"/></p>
</form>
Résultat:
84
La balise <label></label>
Les libellés: Pour créer des zones de texte liées avec le texte
d’indication, il faudra utiliser la balise <label> </label>
En cliquant sur le texte d’indication, le curseur se place
automatiquement dans la zone de texte correspondante.
Pour faire cela:
Donner un nom à la zone de texte, non pas uniquement avec
l'attribut name mais avec l'attribut id (même valeur dans le cas général).
Pour lier le label au champ, il faut lui donner un attribut for qui a la même
valeur que l'id du champ
Exemple
<label for="pseudo">Votre pseudo</label> :
<input type="text" name="pseudo" id="pseudo" />
Résultat:
En cliquant sur l’indication « Votre pseudo » , le curseur se place
automatiquement dans la zone de texte 85
La balise <input type=« text » />
L’attribut placeholder (HTML5) permet de donner une indication sur le contenu du
champ. Cette indication disparaîtra dès qu’on clique à l'intérieur du champ de
texte.
Exemple :
<p> <label for="prenom">Votre prénom :</label>
<input type="text" name="prenom" id="prenom"
placeholder="votre prénom" /></p>
Résultat:
86
Exemple de test- A refaire
<!DOCTYPE html>
<html lang="fr">
<head> <meta charset="utf-8" /> <title>HTMLPLUS</title> </head>
<body>
Exemple :
<label for="pass">Votre mot de passe :</label>
<input type="password" name="pass" id="pass" />
Résultat:
88
La balise <textarea> </textarea>
On utilise le conteneur <textarea> </textarea> pour avoir un espace multi-lignes.
Attributs :
NAME : le nom du champ,
ROWS : le nombres de lignes,
COLS : le nombres de colonnes,
READONLY : lecture seule
Si dans votre code vous insérez du texte entre <textarea> </textarea> , alors il se trouvera
par défaut dans le champ. Si le texte est plus grand que la zone de texte, des barres de
défilement apparaissent.
Exemple Résultat
<p>
<label for="ameliorer">
Comment pensez-vous que je puisse
améliorer mon site ?
</label>
<br />
<textarea name="ameliorer"
id="ameliorer" rows="4" cols="50"
readonly>Améliorer ton site ?!Mais enfin
! Il est tellement génialissime qu'il n'est
pas nécessaire de l'améliorer !
</textarea>
</p>
90
La balise <input type=« checkbox » />
Les cases à cocher
Exemple 1 Résultat
<p>
Cochez vos sports préférés :<br />
<input type="checkbox" name="Natation" id="Natation" />
<label for="Natation">Natation</label><br />
<input type="checkbox" name="cyclisme" id="cyclisme" />
<label for="cyclisme">cyclisme</label><br />
<input type="checkbox" name="Ski" id="Ski" checked />
<label for="Ski">Ski</label><br />
<input type="checkbox" name="petanque" id="petanque" />
<label for="petanque">petanque</label>
</p>
Exemple 2 Résultat
<p>
Cochez vos sports préférés :<br />
<input type="checkbox" name="sport" value="Natation"
id="Natation" /> <label for="Natation">Natation</label><br />
<input type="checkbox" name="sport" value="cyclisme"
id="cyclisme" /> <label for="cyclisme">cyclisme</label><br />
<input type="checkbox" name="sport" value="Ski" id="Ski"
checked /> <label for="Ski">Ski</label><br />
<input type="checkbox" name="sport" value="petanque"
id="petanque" /> <label for="petanque">petanque</label>
</p>
Exemple:
<p><label for="pays">Dans quel pays habitez-vous ?</label><br />
<select name="pays" id="pays">
<option value="france">France</option>
<option value="japon">Japon</option>
<option value="Tunisie" selected>Tunisie</option>
</select> </p>
94
La balise <select> </select>
Les listes déroulantes et les groupes
Vous pouvez aussi grouper vos options avec la
balise <optgroup> </optgroup>. Les groupes ne peuvent
pas être sélectionnés. Seuls les éléments le sont.
Exemple:
<p>
<label for="GroupePays">Dans quel pays habitez-vous
<optgroup label="Afrique">
?</label><br />
<option value="Tunisie"
<select name="pays" id="GroupePays"> selected>Tunisie</option>
<option value="Algérie">Algérie</option>
<optgroup label="Europe"> </optgroup>
<option value="france">France</option> </select>
</p>
<option value="espagne">Espagne</option>
</optgroup>
<optgroup label="Amérique">
<option value="canada">Canada</option>
<option value="etats-unis">Etats-Unis</option>
</optgroup> 95
La balise <fieldset> </fieldset>
Regrouper les champs
Si votre formulaire comporte beaucoup de champs, il est utile de les regrouper au sein de
plusieurs balises <fieldset></fieldset>. Chaque <fieldset> peut contenir une légende avec
la balise<legend>.
<fieldset> <fieldset>
<legend>Vos coordonnées</legend> <legend>Votre souhait</legend>
<!-- Titre du fieldset --> <!-- Titre du fieldset -->
<p><label for="nom">Quel est votre nom <p>Faites un souhait :
?</label> <input type="radio" name="souhait" value="riche"
<input type="text" name="nom" id="nom" /> id="riche" /> <label for="riche">Etre riche</label>
<label for="prenom">Quel est votre prénom <input type="radio" name="souhait"
?</label> value="celebre" id="celebre" /> <label for="celebre">Etre
<input type="text" name="prenom" célèbre</label>
id="prenom" /> <input type="radio" name="souhait" value="sante"
<label for="email">Quel est votre e-mail id="sante" /> <label for="sante">Etre en bonne
?</label> santé</label>
<input type="email" name="email" id="email" </p>
/> </fieldset>
</p>
</fieldset>
96
Nouveaux attributs HTML5
Sélectionner automatiquement un champ
Placer automatiquement le curseur dans l'un des champs avec l'attribut autofocus.
Dès que le visiteur chargera la page, le curseur se placera dans ce champ.
<input type="text" name="genre" id="genre" placeholder="votre genre" autofocus />
100
Autres Nouveautés HTML5
Attention au support des navigateurs
Zones de saisie enrichies
E-mail Couleur
<input type="email" /> <input type="color" />
Une URL Date (type= date , time ,
<input type="url" /> week, month, datetime,
datetime-local )
Numéro de téléphone
<input type="date" />
<input type="tel" />
Recherche
Nombre
<input type="search" />
<input type="number" />
min : valeur minimale autorisée.
max : valeur maximale autorisée.
step : c'est le « pas » de déplacement.
Un curseur
<input type="range" />
102
<datalist>, HTML5 Form Element
Method of setting a list of options for a user to select in a text field, while leaving the
ability to enter a custom value. The <datalist> element specifies a list of pre-defined
options for an <input>element.
Users will see a drop-down list of the pre-defined options as they input data.
The list attribute of the <input> element, must refer to the id attribute of
the <datalist> element.
Example:
<input type="text" list="pays" placeholder="Choisir votre pays" name="mon_pays"/>
<datalist id="pays">
<option value="Tunisie" ></option>
<option value="Algérie"></option>
<option value="Maroc"></option>
<option value="Lybie"></option>
<option value="Mauritanie"></option>
Lors de l’envoi:
</datalist> mon_pays=Tunisie 103
HTML5 <output> Element (1)
The <output> element represents the result of a calculation
HTML oninput Event Attribute: Execute a JavaScript when a user
writes something in an <input> field
valueAsNumber returns double, the value of the element(null if
conversion is not possible)
Example 1:
<form oninput="o.value = ax.valueAsNumber +
by.valueAsNumber">
<input name="ax" type="number"/> +
<input name="by" type="number"/> =
<output name="o" for="ax by"></output>
</form>
104
HTML5 <output> Element (2)
Example 2 with range
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">
106
Attribut pattern (1)
L'attribut pattern offre un format (expression régulière) pour un champ d'entrée
qui est utilisé pour valider le contenu du champ.
NB:
[A-Z] [a-z]: permet de spécifier l’intervalle des lettres de l’alphabet
[0-9] : permet de spécifier l’intervalle des nombres décimaux
{min,max} permet de spécifier l’intervalle du nombre de valeurs
Exemple :
<form> <input type="text" id="empID" name="EmployeeID"
required pattern="[A-Z]{2}[0-9]{4}"
title="ID d'employé commençant par deux lettres majuscules
suivies de quatre chiffres">
<input type="submit" value="Envoyer" />
</form>
Attribut pattern (2)
110