Formulaires dans une page HTML


Retour au menu

Présentation

Jusqu'ici, les pages HTML sont des documents passifs, à consulter.
L'utilisateur parcours des pages, mais ne peut pas écrire, fournir des informations, remplir un formulaire et le transmettre, comme cela se fait couramment par Minitel.
Les seules initiatives attendues de la part de l'utilisateur sont des choix de "navigation" qui lui sont proposés sous forme d'hyperliens cliquables.

Les formulaires HTML (FORMS en anglais) sont des ensembles de composants , appelés aussi champs qui permettent à l'utilisateur d'entrer des informations, d'exprimer ses choix, de saisir du texte ...

Bien sûr les réactions à apporter à ces informations doivent être prévues à l'avance, et donc doivent être programmées.
Les programmes en général placés sur le serveur gérent le dialogue avec le client- utilisateur.
Le langage JavaScript, plus limité, permet l'insertion de petits programmes dans les pages HTML, les rendant ainsi interactives. Il est ainsi possible d'effectuer des traitements à partir des données entrées par l'utilisateur.

La balise FORM

Toute la partie formulaire de la page doit se trouver entre les marqueurs <FORM> ....</FORM>
Cette balise sert de conteneur pour accueillir les éléments ou composants du formulaire, comme par exemple un bouton, une ligne de texte, une liste de choix ..
Chacun de ces composants s'y trouve déclaré et créé individuellement par une balise qui commence généralement par INPUT ou par SELECT
Voici un exemple significatif qui regroupe la plupart des catégories de composants que peut contenir une formulaire HTML.
Chaque composant sera ensuite étudié en détail.

Un exemple complet

<H2><u><CENTER>Fiche de renseignements</CENTER></u></H2>
<FORM  NAME="Fiche_inscription">
Nom : <INPUT TYPE ="text" NAME="Nom" VALUE="" >
Prénom : <INPUT TYPE ="text" NAME="Prenom" VALUE="" >
Mot de passe : < INPUT TYPE="password" NAME="Pass" SIZE=5><P>
Vous êtes en terminale S à dominante : 
<INPUT TYPE="radio" NAME="option" VALUE="math" checked>Mathématiques
<INPUT TYPE="radio" NAME="option" VALUE="pc">Physique-chimie
<INPUT TYPE="radio" NAME="option" VALUE="svt">SVT
<P>

Quelle est votre discipline préférée ? 
<SELECT NAME="disciplines"  MULTIPLE SIZE=3>
  <OPTION>Physique
  <OPTION SELECTED>Informatique
  <OPTION>Philosophie
  <OPTION>Mathématiques
  <OPTION>Langues
  <OPTION>SVT
  <OPTION>Histoire 
  <OPTION>EPS
</SELECT>
<P>

Vous vous êtes inscrit(e)s en : <BR>
<INPUT TYPE="checkbox" CHECKED NAME="DEUG" >DEUG<BR>
<INPUT TYPE="checkbox" NAME="CPGE">CPGE<BR>
<INPUT TYPE="checkbox" NAME="BTS">BTS<BR>
<INPUT TYPE="checkbox" NAME="IUT">IUT<BR>
<INPUT TYPE="checkbox" NAME="AUTRE">AUTRE
<P>
Ecrivez ci-dessous le sujet de votre projet informatique :<BR>
<TEXTAREA NAME="Projet" ROWS=8 COLS=55>
Voici mon projet d'option informatique
</TEXTAREA>
<P>
<INPUT TYPE="RESET" VALUE="Effacer"> Pour recommencer<P>
<INPUT TYPE="SUBMIT" VALUE="Valider" >Pour envoyer ces informations<P>
</FORM >

Fiche de renseignements

Nom : Prénom : Mot de passe :

Vous êtes en terminale S à dominante : Mathématiques Physique-chimie SVT

Quelle est votre discipline préférée ?

Vous vous êtes inscrit(e)s en :
DEUG
CPGE
BTS
IUT
AUTRE

Ecrivez ci-dessous le sujet de votre projet informatique :

Pour recommencer Pour envoyer ces informations


TP exercice 1

Champs de texte

Ligne de texte

<INPUT TYPE="text" NAME="Nom du champ" VALUE="texte initial" SIZE=longueur>

Les divers paramètres

Exemples

Tapez votre nom : <INPUT NAME="Nom" VALUE="toto">
Tapez votre nom :

Tapez votre adresse e-mail: <INPUT NAME="e-mail" VALUE="...@.....fr" SIZE=40>
Tapez votre adresse e-mail:

Code Postal: <INPUT NAME="CP" SIZE=5 MAXLENGTH=5 VALUE="">
Code Postal: (taper exactement 5 chiffres)


Champ mot de passe

Quelquefois on ne veut pas que le texte tapé par l'utilisateur apparaisse à l'écran.
En particulier s'il s'agit d'un mot de passe ! Pour cela, on utilise le composant dont le type est TYPE=PASSWORD.

<INPUT TYPE="password" NAME="mot_de_passe" MAXLENGTH=taille maximum>

Exemple

Entrez votre mot de passe : <INPUT TYPE="password" MAXLENGTH=5>
Entrez votre mot de passe :


Zone de texte multiligne

Pour permettre à l'utilisateur de saisir un texte de plusieurs lignes, on utilise le composant <TEXTAREA

<TEXTAREA NAME=".." ROWS=.. COLS= ..>
Texte affiché par défaut ...<BR>
</TEXTAREA>

Les divers paramètres

Exemple

<TEXTAREA NAME="Demande" ROWS=8 COLS=55>
Bonjour,
J'ai une demande très importante à formuler.
J'espère que vous pourrez me dépanner ...
</TEXTAREA>


Liste de sélection

Pour permettre un choix dans une liste de plusieurs options présentées sous forme de liste déroulante, on utilise la balise <SELECT>

<SELECT NAME="..."  SIZE=...>
<OPTION SELECTED >option 1
<OPTION>option 2
<OPTION>option 3
</SELECT>

Les divers paramètres

Exemples

Vous êtes inscrit(e) au lycée J-Feyder dans une classe de : 
<SELECT NAME="Niveau"  SIZE=3>
 <OPTION> seconde
 <OPTION> première
 <OPTION SELECTED> terminale
 <OPTION> section BTS
</SELECT>

Vous êtes inscrit(e) au lycée J-Feyder dans une classe de :

<SELECT NAME="pizza" MULTIPLE SIZE=3 MULTIPLE>
 <OPTION>  anchois
 <OPTION SELECTED>tomate  
 <OPTION>olives
 <OPTION SELECTED>  fromage
 <OPTION>épices
 <OPTION>viande hachée
 <OPTION>câpres
</SELECT>

Que désirez vous dans votre pizza ?


Cases à cocher

Afin de répondre à des questions du type Oui/Non ou Vrai/faux, on utilise des boîtes à cocher avec la balise :
<INPUT TYPE="CHECKBOX" NAME= "..." CHECKED>question

Les divers paramètres

Exemple

<INPUT NAME="Client" TYPE=CHECKBOX> Déjà client ?<BR>
<INPUT NAME="Brochure" TYPE=CHECKBOX CHECKED>Demande d'une brochure

Déjà client ?
Demande d'une brochure.


Boutons de sélection

Le type RADIO vous permet de définir des boutons radio.
Ils sont utilisés lorsque l'utilisateur doit faire un choix entre plusieurs options concurrentes, qui s'excluent mutuellement.
Ils jouent ainsi un rôle analogue aux listes de sélection.
Il faut donc indiquer le groupe des boutons dans lequel ce choix exclusif doit s'exercer, en leur donnant un même nom (la valeur de l'attribut NAME). L'utilisateur ne pourra alors sélectionner qu'un seul bouton radio à la fois dans chaque groupe.

<INPUT TYPE="RADIO" NAME="nom" VALUE=".." CHECKED>option 1<BR>
<INPUT TYPE="RADIO" NAME="nom" VALUE=".." >option 2<BR>
<INPUT TYPE="RADIO" NAME="nom" VALUE=".." >option 3

Les divers paramètres

Exemple

Vous habitez :<BR>
<INPUT TYPE=RADIO NAME="Ville" VALUE="E" CHECKED >Epinay<BR>
<INPUT TYPE=RADIO NAME="Ville" VALUE="SD"  >Saint-Denis<BR>
<INPUT TYPE=RADIO NAME="Ville" VALUE="V"  >Villetaneuse<BR>
<INPUT TYPE=RADIO NAME="Ville" VALUE="S"  >Stains<BR>

Vous habitez :
Epinay
Saint-Denis
Villetaneuse
Stains


Boutons de commande

Les boutons servent à recevoir des "clics". Leur principale fonction est de permettre à l'utilisateur de déclencher des événements auxquels seront rattachées des fonctions.

Boutons communs

<INPUT TYPE="Button" NAME= ".." VALUE="Cliquez">

La valeur de l'attribut VALUE est le texte gravé sur le bouton.
Un bouton sert essentiellement à déclencher des traitements locaux, par appel d'une fonction écrite en langage JavaScript.

Boutons de validation

Ce bouton sert à valider les informations saisies dans les champs du formulaire. Il provoque l'expédition de ces informations soit sur le serveur pour y être traitée, soit en message électronique ou bien
<INPUT TYPE="SUBMIT" NAME= ".." VALUE="Envoyer">

Boutons de réinitialisation

Ce bouton remet le formulaire dans son état initial, en réinitialisant les valeurs par défaut.

<INPUT TYPE="RESET" VALUE="Effacer>


TP exercice 2

Compléments : transmission des données

La balise FORM possède plusieurs attributs, permettant de spécifier ce qui doit être fait lorsque l'utilisateur veut envoyer les données au serveur.

Attribut action

<FORM ACTION="url"...> permet d'indiquer l'URL (de protocole : http, ftp, gopher, file, mailto, news, telnet, ...) qui va recevoir les informations entrées dans le formulaire, lorsque l'on cliquera sur le bouton de validation.
Plus précisément, l'URL est l'adresse d'un programme (un script) qui va récupérer les données et les traiter. Si le champ ACTION est absent, l'URL sera celle du document courant.

Attribut method

L'attribut METHOD permet d'indiquer la méthode de transmission des données saisies dans le formulaire.
Il y en a deux:

Exemple : l'action MAILTO:

C'est le moyen le plus simple pour faire expédier les informations du formulaire par l'utilisateur.
Il consiste à utiliser automatiquement le courrier électronique.
Il suffit de spécifier l'adresse électronique (e-mail) du destinataire après le nom du protocole MAILTO:
.
Si le serveur de messagerie est accessible, (si l'utilisateur est bien connecté), le corps du message acheminé contiendra la liste des couples champ1=valeur1

Par exemple, pour m'envoyer vos fiches de rensenseignements, il suffirait de remplacer, dans le formulaire du début de ce chapitre, la ligne <FORM NAME="Fiche_inscription"> par

<FORM  NAME="Fiche_inscription" ENCTYPE="text/plain" METHOD="post"
ACTION="MAILTO:jgourdin@ac-creteil.fr">

Pour expérimenter cette méthode, voir l'exercice 3 du TP


TP exercice 3