Les formulaires HTML
(Ph. Truillet – UPS)
27 Septembre 2001 – v. 1.0
Les documents HTML ne servent en général qu’à présenter de l’information à l’utilisateur. Rien n’était a priori prévu au départ pour que ce dernier puisse transférer de l’information dans “l’autres sens” (des utilisateurs vers le serveur de documents).
Cependant, dès la version HTML 2.0, il existe une technique permettant une communication du client (utilisateur) vers le serveur : le formulaire. Associé à des scripts CGI (Common Gateway Interface), scripts JavaScript ou PHP (Personal Home Page), le formulaire permet une certaine interaction entre l’utilisateur final et le fournisseur de données grâce à des zones de saisie, boutons, etc.
Un formulaire est défini par les balises <form> et </form>. Deux paramètres doivent en outre être défini à l’ouverture du formulaire (cf. Exemple 1) :
v action : adresse d’envoi du formulaire
v method :
la méthode de transmission des données (get ou post).
La méthode get s’est établie comme un standard mais ne convient pas au
transfert de grandes quantités de données : il faut alors utiliser la
méthode post.
<html> <head><title>Formulaire
1</title></head> <body> <form
action=“mailto :truillet@irit.fr” method=post> Votre nom : <input name=“Nom” size=15> </form> </body> </html> |
Exemple 1 : Exemple de formulaire simple
Il existe différents types de données que l’utilisateur est amené à saisir dans un formulaire : texte libre sur une ou plusieurs lignes, choix entre différentes options listées, etc.
Ce type de zone de saisie est créé grâce à la balise <input>. Chaque zone de saisie doit avoir un nom unique !
<form
action=“ http://perso0.free.fr/cgi-bin/form2mail.pl” method=post>
Nom :<input
name=“nom” size=15 maxlength=20>
</form>
Exemple 2 : bout de code de zone de saisie monoligne
Les attributs de la balise <input> sont :
v size : taille de la zone de saisie
v maxlength : taille maximale acceptée
v
type :
o int : saisie de nombres entiers
o float : saisie de nombres décimaux acceptée
o date : saisie de dates
o url : saisie d’une adresse internet
o password : les caractères saisis ne sont pas visibles et sont remplacés par des astérisques
Les zones de saisie multilignes se réalisent à l’aide de la balise <textarea> et se terminent par </textarea>. Là aussi, chaque zone doit avoir un nom unique !
<form
action=“ http://perso0.free.fr/cgi-bin/form2mail.pl” method=post>
Votre
opinion :<textarea name=“opinion” cols=15 rows=20>
</form>
Exemple 3 : bout de code de zone de saisie multilignes
Les attributs acceptés sont au nombre de deux :
v cols : nombre de colonnes
v rows : nombre de lignes
Un élément de liste est défini par la balise <option> (il se termine normalement par </option>).
<form
action=“ http://perso0.free.fr/cgi-bin/form2mail.pl” method=post>
<select
name="Level">
<option
value="First" selected>1<sup>er</sup> cycle
<option
value="Second">2<sup>ème</sup> cycle
<option
value="Third">3<sup>ème</sup> cycle
</select>
</form>
Exemple 4 : bout de code avec liste d’options
Il est possible de spécifier la possibilité de choix multiples en ajoutant l’attribut multiple dans la balise <select>.
Pour un choix sélectionné par défaut, l’attribut selected doit être rajouté dans la balise <option>.
HTML fournit des boutons de formulaires que l’utilisateur peut activer en cliquant dessus. En réalité, il s’agit d’une forme dérivée de zones de saisie définie par la balise <input>.
Les boutons d’option sont aussi appelés “radio buttons” (référence aux boutons de radio qui ne permettent de sélectionner qu’une seule station).
<input
type=radio name="civil" value="monsieur">M. <input
type=radio name="civil" value="madame">Mme <input
type=radio name="civil" value="mademoiselle">Mlle <input type=radio name="civil" value="docteur">Dr |
Exemple 5 : exemple de boutons d’option
La syntaxe d’un bouton d’option est (cf. exemple 5) :
<input type=radio name=[nom_unique] value=[nom_interne] {checked}>[Nom du bouton]
<input
type=checkbox name="choix" value="abonnement">vous
abonner <br><input
type=checkbox name="choix" value="informations">de
l'information <br><input type=checkbox name="choix" value="suggestion">nous faire une suggestion |
Exemple 6 : exemple de cases à cocher
De la même manière, la syntaxe d’une case à cocher est (cf. exemple 6) :
<input type=checkbox name=[nom_unique] value=[nom_interne] {checked}>[Nom de la case]
<div
align="center"> <input type="submit"
value="Valider" name="submit"> </div> </td> <td width=50%> <div
align="center"> <input type="reset"
value="Effacer" name="Clear"> </div> |
Exemple 7 : exemple de boutons de commandes
Pour terminer un formulaire, il faut offrir à l’utilisateur la possibilité d’envoyer le formulaire ou bien de l’annuler. Les boutons de commande sont eux aussi dérivés d’un zone de saisie et leur syntaxe est (cg. Exemple 7) :
v bouton d’annulation : <input type=reset name=[nom]>
v bouton d’envoi : <input type=submit name=[nom]>
D’autres attributs existent là aussi : l’étude des spécifications d’HTML 4.0 (http://www.w3c.org) vous montrera lesquelles !
Pour les exercices, vous enverrez les données à votre adresse e-mail comme indiqué ci-dessous :
<form action=“mailto:votrenom@domaine.fr”
method=post>
v créez le formulaire suivant :
Testez-le : que constatez-vous ?
v vous désirer mieux connaître vos futurs abonnés. Vous voulez ajouter une liste de choix (liste d’options ou cases à cocher) de domaines d’intérêt. Modifiez votre formulaire pour prendre en compte ce changement.
v vous désirez ajouter un “objet” (du genre : abonnement à la revue) au mail que vous allez recevoir pour pouvoir traiter en conséquence : modifiez le formulaire dans ce sens.