Formation :
HTML en détails
XHTML en détails
HTML - Les Formulaires
01 - Introduction :

Qu'est qu'un formulaire?

Le formulaire HTML va vous permettre de récupérer des informations que va saisir l'internaute sur votre site.

L'internaute va saisir ses informations soit en remplissant des champs texte (input), soit sélectionnant un élément dans une liste déroulante (select) ou en sélectionnant une case à cocher (radio, checkbox).
Une fois les informations saisies, l'internaute va valider en cliquant sur un bouton de soumission (submit).

Alors les informations seront transmises soit à une adresse e-mail (mailto) soit à un cgi (Common Gateway Interface), soit à une page dynamique de type php, asp, jsp...

02 - La balise form :

Un formulaire HTML se définit par la balise HTML <FORM> </FORM>.

La balise HTML <FORM> doit contenir deux attributs indispensables.

- ACTION qui définit la destination où sont envoyées les donnés, en règle générale c'est un cgi
ou une page dynamique type php ou asp...
- METHOD qui définit la méthode d'envoi (POST et GET).

<FORM method="post" action="cgi-bin/script.php"></form>

Une balise <FORM> ne doit pas contenir une autre balise <FORM>.
Une page HTML peut contenir plusieurs formulaires.

Pour plus de détails sur la balise HTML <FORM> voir le chapitre HTML.

Mailto :

Nous allons étudier dans ce chapitre l'attribut METHOD de type "post" et l'attribut ACTION de type "mailto: Votre e-mail".

Nous l'écrirons :

<FORM ACTION="mailto:Votremail" METHOD="post" ENCTYPE="text/plain">

ENCTYPE précise la méthode MINE de codification (format d'envoi) qui va être utilisé pour l'envoi en METHOD="POST".
"Text/plain" est la valeur qui doit être utilisé lorsque les informations sont envoyées par courrier électronique, ce qui est le cas car l'action est de type "mailto:Votremail".

Lorsque vous recevez le formulaire (avec cette méthode et cette action), il sera sous cette forme :

prenom=*
nom=*
activite= *

En fait, le premier mot est en général associé à l'attribut name d'une balise et le second après le = est la valeur attribuée à value de cette même balise. Il y a des exceptions que nous verrons lorsque nous étudierons la balise.

La valeur de NAME doit être la plus significative de l'information que vous demandez, la valeur ne doit pas comporter d'accent ni de virgule.

03 - Effacer et envoyer :

Dans un formulaire vous devez avoir obligatoirement deux boutons.

Un bouton pour réinitialiser le formulaire :

<INPUT type="reset" name="nom" value="Rétablir">

Un bouton pour envoyer le formulaire :

<INPUT type="submit" name="nom" value="Envoyer">

Value correspond au texte affiché sur le boutton.
Type définit pour ces deux boutons l'action à exécuter :

- reset pour réinitialiser
- submit pour envoyer.

Dans un formulaire, il ne peut y avoir qu'un seul bouton envoi et réinitialise.

Le résultat de l'envoi :

Le bouton" reset" n'apparaît jamais dans le résultat.
Le bouton "submit" est envoyé lors de l'envoi du formulaire. Lors de l'emploi de "Mailto" la valeur apparaît à la fin du résultat sous la forme : name= value

nom = Envoyer

Pour plus de détails voir le chapitre sur la balise <INPUT>.

04 - Les champs de texte :

Il existe deux types de champs de texte :

- le champ simple d'une ligne,
- le champ multi-lignes.

Simple :

Le champ simple :

<INPUT type="text" name="nom" value="" size="10">

Type définit la forme de la balise <INPUT>, donc pour une zone de texte simple c'est "text".
Name donne un nom au champ texte. Très important car à ce nom est associé la valeur.
Value définit le texte mis au départ dans le champ, si le champ est vide alors value="". sachez que si vous rentrez une valeur par défaut, l'internaute sera obligé de sélectionner le texte de votre champ texte puis de l'effacer pour pouvoir écrire un nouveau texte (sauf si vous utilisez le javascript).
Size correspond à la longueur du champ, ce n'est pas des pixels, je dirais que cela correspond à l'encombrement total horizontal de la lettre la plus large (w).

Le résultat de l'envoi :

Le champ de texte apparaît sous la forme : name = value

nom = texte tapé par l'internaute

Multi-lignes :

Le champ multi-lignes :

<TEXTAREA name="nom" cols="30" rows="5">Texte défaut</TEXTAREA>

COLS correspond à la longueur du champ, ce n'est pas des pixels, je dirais que cela correspond à l'encombrement total horizontal de la lettre la plus large (w).
ROWS correspond à la hauteur du champ c'est à dire le nombre de ligne.

Le résultat de l'envoi :

Le champ de texte apparaît sous la forme : name = value

nom = texte tapé par l'internaute
05 - Les cases à cocher et les boutons radio :

Il est important de faire la différence entre le bouton radio et la case à cocher.

La case à cocher permet de faire des plusieurs choix sur un ensemble de propositions.

1 2 3 4 5

Le bouton radio permet de faire un choix sur un ensemble de propositions.

1 2 3 4 5
06 - Les cases à cocher :

Checkbox :

La case à cocher s'écrit :

<INPUT type="checkbox" name="nom" value="Nom_du_choix">

Type définit la forme de la balise <INPUT>, donc pour une case à cocher, c'est "checkbox".
Name donne un nom à la case. Très important car à ce nom est associé à la valeur (value) lorsque l'on réceptionne le formulaire.
Value est la valeur de la sélection.

Le résultat de l'envoi :

Le champ de texte apparaît sous la forme : name = value

nom = Nom_du_choix

Pour plus de détails voir le chapitre sur la balise <INPUT>.

07 - Les boutons radio :

Radio :

Le bouton radio s'écrit :

<INPUT type="radio" name="nom" value="Nom_du_choix">

Type définit la forme de la balise <INPUT>, donc pour un bouton radio, c'est "radio".
Name donne un nom. Très important car à ce nom est associé une valeur qui est en faite le texte saisit par l'internaute.
Pour faire un seul choix dans un ensemble de propositions, le nom doit être identique.
Value c'est la valeur de la sélection.

Le résultat de l'envoi :

Le champ de texte apparaît sous la forme : name = value

nom = Nom_du_choix

Pour plus de détails voir le chapitre sur la balise <INPUT>.

08 - Mon premier formulaire :

Nous allons créer un formulaire qui va comporter un champ pour rentrer votre prénom, une zone de choix où vous allez choisir votre sexe et une zone d'information générale.

Exercice :

Voici à quoi doit ressembler votre formulaire.

Voir le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mon premier formulaire</title>
</head>

<body bgcolor="#FFFFFF">
<form name="tout" method="post" action="mailto:contact@webinnov.fr">
<table width="34%" border="1">
<tr>
<td width="22%">Prenom</td>
<td colspan="3">
<input type="text" name="prenom">
</td>

</tr>
<tr>
<td>Sexe</td>
<td width="31%">Mr
<input type="radio" name="sexe" value="mr">
</td>
<td width="27%">Mme
<input type="radio" name="sexe" value="mme">
</td>
<td width="20%">Melle
<input type="radio" name="sexe" value="mselle">

</td>
</tr>
<tr>
<td colspan="2">Vous aimez :</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<input type="checkbox" name="aimez" value="Informatique">

L'informatique</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>
<input type="checkbox" name="aimez" value="Web">
Le Web</td>

<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="aimez" value="Design">
Le Design</td>
<td>&nbsp;</td>

<td>&nbsp;</td>
</tr>
<tr>
<td>
<input type="checkbox" name="aimez2" value="Rien du tout">
Rien de tout</td>
<td>&nbsp;</td>
<td>&nbsp;</td>

<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp; </td>
<td><input type="reset" name="efface" value="Rétablir" /></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
</body>

</html>

Lorsque vous envoyez le formulaire, vous devriez en avoir un exemplaire dans votre boite d'envoi (élément envoyé).
Regardez ce mail c'est sous cette forme que vous recevrez le formulaire.

nom donné à name = valeur attribuée
09 - Les menus déroulants :

Vous pouvez faire des menus déroulant pour par exemple remplacer vos boutons radio, ou parce que vous n'avez pas assez de place...

On écrira :

<SELECT name="Nom_de_la_selection" size="1" multiple>
  <OPTION value="choix">Premier_choix</option>
</SELECT>

Name est le nom de la sélection, il est associé à la valeur de la balise <OPTION>.
Size détermine le nombre d'options visibles. Il doit être < ou = au nombre de balises <OPTION>.
Multiple signifie que l'on peut faire plusieurs sélections. si vous ne le mettez pas, l'internaute ne pourra faire qu'une sélection.

La balise <OPTION> correspond à un élément de la liste.

Vous pouvez donc avoir plusieures balises <OPTION>

Tous ce qui sera entre <OPTION> et </OPTION> sera visible par l'internaute.
Value est la valeur renvoyée dans le formulaire, elle sera associée Name de la balise <SELECT>.

Le résultat de l'envoi :

Le champ de texte apparaît sous la forme : name = value

Nom_de_la_selection = choix

Pour plus de détails voir le chapitre sur la balise <SELECT> et <OPTION>.

10 - Mon second formulaire :

Exercice :

Voici un exemple de formulaire à reproduire.

Voir le code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mon second formulaire</title>
</head>
<body bgcolor="#A0A4C2" text="#FFFFFF">
<form method="post" action="mailto:contact@webinnov.fr" name="form" enctype="text/plain">

<table width="75%" border="0" cellspacing="0">
<tr align="left" valign="top" bgcolor="#A0A4C2">
<td colspan="4" height="30"><b>MON SECOND FORMULAIRE</b></td>
</tr>
<tr valign="middle" bgcolor="#A0A4C2">
<td><b>Votre nom</b></td>

<td>
<input type="text" name="nom">
</td>
<td><b>Votre Premon</b></td>
<td>
<input type="text" name="prenom">
</td>
</tr>
<tr valign="middle" bgcolor="#A0A4C2">
<td><b>Votre e-mail</b></td>

<td>
<input type="text" name="mail">
</td>
<td><b>Votre alias</b></td>
<td>
<input type="text" name="alias">
</td>
</tr>
<tr valign="middle" bgcolor="#A0A4C2">
<td><b>Votre sexe</b></td>

<td>
<select name="sexe">
<option value="mr" selected>Mr</option>
<option value="mme">Mme</option>
<option value="mselle">Mselle</option>
<option value="autre">Autre</option>
</select>

</td>
<td><b>Profession</b></td>
<td>
<input type="text" name="prof">
</td>
</tr>
<tr bgcolor="#A0A4C2">
<td>&nbsp;</td>
<td>&nbsp;</td>

<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4"><b>Votre niveau en HTML :&nbsp;&nbsp;&nbsp;nul&nbsp;&nbsp;
<input type="radio" name="niv" value="nul">
&nbsp;&nbsp;&nbsp;moyen&nbsp;&nbsp;
<input type="radio" name="niv" value="moy">
&nbsp;&nbsp;bon&nbsp;&nbsp;
<input type="radio" name="niv" value="bon">

&nbsp;&nbsp;&nbsp;tr&egrave;s bon&nbsp;
<input type="radio" name="niv" value="tbon">
&nbsp;</b></td>
</tr>
<tr bgcolor="#A0A4C2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>

</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4"><b>Comment &ecirc;tez vous arriv&eacute; sur ce site.</b></td>
</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4">
<textarea name="arrive" rows="10" cols="30" wrap="VIRTUAL"></textarea>
</td>

</tr>
<tr bgcolor="#A0A4C2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4"><b>Avez vous trouvez ce que vous cherchiez :&nbsp;&nbsp;&nbsp;Non
<input type="radio" name="recherche" value="radiobutton">

&nbsp;&nbsp;&nbsp;&nbsp;Oui &nbsp;
<input type="radio" name="recherche" value="radiobutton">
</b> </td>
</tr>
<tr bgcolor="#A0A4C2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>

</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4"><b>Si vous aviez a mettre une note sur 10 :
<select name="note">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>

<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>

<option value="10" selected>10</option>
</select>
</b> </td>
</tr>
<tr bgcolor="#A0A4C2">
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>

<td>&nbsp;</td>
</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4"><b>Vos remarques :</b></td>
</tr>
<tr bgcolor="#A0A4C2">
<td colspan="4">
<textarea name="remarque" cols="45" rows="10"></textarea>
</td>
<tr bgcolor="#A0A4C2">
<td>&nbsp;</td>
<td>&nbsp;</td>

</tr>
<tr bgcolor="#A0A4C2">
<td><input type="reset" name="efface" value="R&eacute;tablir" /></td>
<td><input type="submit" name="envoi" value="Envoyer" /></td>
</tr>

</tr>
</table>
</form>
</body>

</html>

left home right