Les formulaires

Limitations, mais astuce
Normalement, les formulaires ne sont utilisés que sur des serveurs pouvant lancer des programmes (CGI-BIN, ASP, PHP3, etc...) pour en faire un traitement, ce qui n'est pas forcément le cas d'un provider ordinaire (fournisseur d'accès internet) ou autre "hébergeur" de pages web (surtout quand il est gratuit).

Toutefois il est possible de tricher et de se faire envoyer un formulaire en courrier, la lecture des champs ne sera pas forcément facile si le formulaire est complexe, mais c'est à vous d'en juger, et puis, je ne veux rien vous cacher.


Les possibilités
Il existe plusieurs type de boutons/menus/champs/formulaires il serait fastidieux de tous les examiner en détail ici, mais en voici une petite liste:
  • Champ mot de passe (sans réelle protection)
  • Bouton à cocher (un ou plusieurs)
  • Bouton radio (un seul à la fois)
  • Champs texte (une ligne)
  • Zone texte (un document)
  • Attachement de fichiers (intérêt limité)
  • Champs cachés (avec un numéro de client à l'intérieur par exemple)
  • Sélection simple (bouton menu déroulant)
  • Sélection multiple
  • Bouton d'effacement du formulaire
  • Bouton de soumission de formulaire (texte)
  • Bouton de soumission graphique avec coordonnée d'image


Un formulaire commence par <FORM METHOD="" ACTION=""> et fini par </FORM>, tout ce qui se trouve entre ces deux marqueurs comme champs et/ou boutons sera envoyé à la page ou au programme défini par ACTION="" par le bouton SUBMIT (créé par un marqueur <INPUT TYPE="SUBMIT"> qui doit absolument se trouver aussi à l'intérieur de <FORM></FORM> ).

Le paramètre de METHOD est soit POST soit GET selon le type de serveur web utilisé (il faut essayer pour le savoir).



Exemple:


<FORM METHOD="POST" ACTION="mailto:xxx@yyy.zzz">
Votre nom: <INPUT TYPE="TEXT" NAME="NOM" SIZE="20" ALT="Nom"><BR> Votre nom:
<INPUT TYPE="RADIO" NAME="Genre" VALUE="Homme" ALT="Homme"> Homme<BR> Homme
<INPUT TYPE="RADIO" NAME="Genre" VALUE="Femme" ALT="Femme"> Femme<BR> Femme
Age: <INPUT TYPE="TEXT" SIZE="3" NAME="Age" ALT="Age"><BR>Age:
Divers:<BR> Divers:
<INPUT TYPE="CHECKBOX" NAME="Marié" VALUE="oui" ALT="Marié"> Marié<BR> Marié
<INPUT TYPE="CHECKBOX" NAME="Chômeur" VALUE="oui" ALT="Chômeur"> Chômeur<BR> Chômeur
AUTRE: <TEXTAREA NAME="AUTRE" COLS="20" ROWS="4" ALT="Autre">
(texte en option ou formulaire à compléter)
</TEXTAREA><BR>
AUTRE:
PSEUDO: <INPUT TYPE="TEXT" NAME="PSEUDO" size ="20" ALT="Pseudo"><BR>PSEUDO:
<SELECT NAME="Menu" ALT="Menu">
<OPTION>Option1</OPTION><OPTION>Option2</OPTION></SELECT><BR>
<SELECT MULTIPLE NAME="Menu2" SIZE="3" ALT="Menu2">
<OPTION>Option1</OPTION>
<OPTION SELECTED VALUE="défaut">Option2</OPTION>
<OPTION>Option3</OPTION></SELECT><BR>
Merci d'avoir répondu à ce questionnaire.<BR>Merci d'avoir répondu à ce questionnaire.
<INPUT TYPE="RESET" VALUE="Effacement" ALT="Effacement"><BR>
<INPUT TYPE="SUBMIT" VALUE="Envoi" ALT="Envoi"><BR>
SUBMIT IMAGE: <INPUT TYPE="IMAGE" SRC="envoi.gif" ALT="Envoi">
</FORM>

L'utilisation de ALT="" dans les champs de données (input et autres) permet théoriquement aux non-voyants de naviger avec le clavier dans les champs en sachant où ils se trouvent (pour autant que le contenu soit pertinent, pas vraiment comme ici), utilisez-les donc autant que possible.

Le résultat du formulaire arrivera sous diverses formes dépendant du serveur, de la méthode POST ou GET et du logiciel employé, soit par exemple en une ligne unique dont les divers éléments seront séparés par des "&" par exemple: NOM=Tintin&Genre=Homme&Age=2&Marie=oui (etc...), soit en plusieurs lignes: &ligne1="xxxxxx" &ligne2="yyyyy", ou autre, et avec des coordonnées si on à utilisé le bouton d'envoi graphique.
Vous pouvez le voir en envoyant le formulaire ci-dessus, comme l'adresse du destinataire est bidon, il devrait vous revenir accompagné d'un message d'erreur de votre serveur de courrier.

NB: Pour rendre le retour plus lisible on peut théoriquement ajouter l'option: ENCTYPE="text/plain" dans le marqueur FORM METHOD="POST" mais le résultat semble dépendre beaucoup du serveur utilisé.

Certains fournisseurs d'accès proposent un script cgi ou php pour "éplucher" les données et les rendre plus présentables (éventuellement grâce à un modèle), ainsi que l'affichage d'une page de confirmation, en jouant sur les paramètres du marqueur <FORM>. Comme la syntaxe et les paramètres de ces scripts changent d'un serveur à l'autre vous devrez consulter votre provider à ce sujet.


Migraine ?
Tous ces type de boutons et champs on étés joyeusement mélangés pour fournir un exemple complet mais on peut se limiter à des choses plus simples:

<FORM METHOD="POST" ACTION="mailto:xxx@yyy.zzz">
<INPUT TYPE="HIDDEN" NAME="Sujet" VALUE="Guide-HTML-Formulaire"><BR>
Comment avez-vous trouvé ce site ?<BR>Comment avez-vous trouvé ce site ?
<INPUT TYPE="RADIO" NAME="Qualité" VALUE="Super" CHECKED ALT="Super"> Super<BR> Super
<INPUT TYPE="RADIO" NAME="Qualité" VALUE="Bon" ALT="Bon"> Bon<BR> Bon
<INPUT TYPE="RADIO" NAME="Qualité" VALUE="Moyen" ALT="Moyen"> Moyen<BR> Moyen
<INPUT TYPE="RADIO" NAME="Qualité" VALUE="Nul" ALT="Par hasard"> Par hasard<BR> Par hasard
<INPUT TYPE="SUBMIT" VALUE="Envoi" ALT="Envoi">
</FORM>

Quitte à mettre plusieurs formulaires différents dans la même page, un par sujet. Attention toutefois à ne pas imbriquer les formulaires.

A noter
  • L'utilisation de l'option "selected" (premier formulaire) pour sélectionner une ligne par défaut.
  • L'utilisation de l'option "value" (premier formulaire) pour indiquer une autre valeur que celle de la ligne sélectionnée.
  • L'utilisation du champ "hidden" (caché) pour indiquer le sujet du message (que l'on ne peut pas mettre en "?Subject=")
  • le mot clef "checked" pour forcer un bouton (radio ou checkbox)
  • Les caractères accentués sont convertis en "%xx" (code du caractère), ce qui n'améliore pas vraiment la lecture
  • Je reçois réellement ce formulaire, vous pouvez donc l'utiliser pour exprimer votre avis...

Derniers trucs
Il est tout à fait possible d'avoir plusieurs groupes de boutons de type RADIO (mutuellement exclusifs) dans le même formulaire, il suffit de donner un nom différent (NAME=) à chacun des groupes.

Il est aussi possible de se passer d'un bouton de type submit pour l'envoi d'un formulaire dans le cas ou celui-ci ne comporte par exemple qu'un seul et unique champ texte, l'envoi se faisant alors par appui sur la touche RETURN (ou ENTER).


Pour les veinards
Et voilà, vous savez tout des formulaires, et si vous avez la chance de pouvoir exécuter des programmes CGI, ASP ou PHP3, c'est à dire si votre serveur et votre provider ("hébergeur") le permettent, il suffit de remplacer le "mailto:" par "/cgi-bin/form1.pl", "form1.asp", ou "form1.php" (par exemple), de recevoir les paramètres dans votre programme form1.pl, script form1.asp, ou form1.php, et de les traiter en conséquence.

RetourInfo Suite

Dernière mise à jour de cette page: 04/09/2001, visiteurs: depuis le 6 avril 2002