créer un formulaire
Interactions hommes - machines (IHM)

Les formulaires permettent d'étendre les possibilités d'action des personnes qui consultent un document HTML. Ils offrent la possibilité d'introduire des zones de saisie de texte, des listes de choix et des boutons de commandes. Les résultats obtenus pourront être envoyés par courrier électronique ou traités directement par des commandes JavaScript.
Création d'un formulaire
La balise form
Un formulaire est toujours défini entre les balises <form>
et </form>
.
La balise <form>
est accompagnée des attributs :
- name : pour donner un nom au formulaire
- ACTION : URL qui indique le traitement à effectuer avec le contenu; on peut donner l'adresse d'un script CGI, le nom d'une commande JavaScript ou une adresse d'E-Mail.
- METHOD : pour indiquer la méthode de traitement qui sera GET ou POST; GET convient au transfert de données en quantité limitée vers un script CGI; POST est souvent utilisé pour l'envoi par E-Mail.
Entre les balises <form>
et </form>
on peut intégrer du code HTML classique ainsi que les différents objets destinés à recevoir les actions de l'utilisateur.
La balise input
La balise input
permet de recevoir les saisies de l'utilisateur sous
plusieurs formes. L'attribut type
permet de préciser cette forme.
L'attribut name
permet de nommer le composant.
-
Ligne de saisie
Elle correspond au typetext
. Elle peut être accompagnée des attributssize
pour définir la taille de la ligne en caractères etMAXLENGTH
pour définir le nombre maximal de caractères à saisir.
Exemple :<input type="text" name="ligne1" size="8" MAXLENGTH="10">
-
Boutons-"radio"s
Ils correspondent au type"radio"
. Ils sont accompagnés de l'attributvalue
. Lorsque plusieurs boutons "radio"s ont le même nom (attribut name), ils fonctionnent de manière conjointe; si l'un est sélectionné, les autres sont désélectionnés.
Exemple :<input type="radio" name="sexe" value="masculin">Monsieur</input> <input type="radio" name="sexe" value="féminin">Madame</input>
-
Cases à cocher
Elles correspondent au typecheckbox
. Elles sont accompagnées de l'attributvalue
.
Exemple :<input type=checkbox name="couleur" value="bleu">Bleu</input> <input type="checkbox" name="couleur" value="rouge">Rouge</input>
-
Boutons d'envoi ou d'annulation
Ils correspondent aux types
submit
etreset
. Ce sont des boutons à cliquer : submit permet de déclencher l'action définie dans la balise form, reset permet d'effacer le contenu du formulaire. L'attribut value permet d'indiquer le texte affiché sur le bouton.
Exemple :<input type="submit" value="Envoyer"></input> <input type="reset" value="Annuler"></input>
-
Boutons de commandes
Ils correspondent au typeBUTTON
. L'attributvalue
permet d'indiquer le texte affiché sur le bouton. L'attributonclick
permet de lui associer une commande JavaScript qui sera exécutée lorsque l'utilisateur appuie sur le bouton.
Exemple :<input name="bouton1" type="button" value="Vérifier" onclick="alert('Bonjour.')"> </input>
La balise TEXTAREA
La balise textarea
permet d'insérer une zone de saisie de texte
à plusieurs lignes. Le texte contenu entre les balises textarea
et /textarea
est reproduit dans dans la zone de saisie.
La balise textarea
admet les attributs suivants :
- name : nom
- rows : hauteur en nombre de lignes
- cols : largeur en nombre de colonnes
Exemple :
<textarea name="zonetexte" rows="10" cols="30>
Donnez votre opinion dans cette zone.
</textarea>
La balise select
La balise select
permet d'insérer une liste de sélection.
Elle est associée à la balise option qui permet d'indiquer
les différents choix proposés par la liste.
La balise select
admet les attributs name pour le nom et size
pour
le nombre de lignes affichées.
La balise option
admet l'attribut selectED pour indiquer l'item présélectionné.
Exemple de liste de sélection :
<select name="listechoix" size="4">
<option>Lundi</option>
<option>Mardi</option>
<option>Mercredi</option>
<option>Jeudi</option>
<option selectED>Vendredi</option>
<option>Samedi</option>
</select>
Exemples
Un début de QCM
Nous allons réaliser un formulaire contenant une question et
proposant 4 réponses. L'appui sur le bouton "Vérifier" permettra
d'effectuer un contrôle de la réponse.
On utilise le code suivant :
<form name="qcm1">
<B>Question :</B>
Quelle est la mesure des angles d'un triangle équilatéral ?
<B>Réponses :</B>
<input type="radio" name="choix" value=30>30°</input>
<input type="radio" name="choix" value=45>45°</input>
<input type="radio" name="choix" value=60>60°</input>
<input type="radio" name="choix" value=90>90°</input>
<input type="button" name="bouton" value="Vérifier"
onclick="if (document.qcm1.choix[2].checked) {alert('Bonne réponse.')}
else {alert('Réponse fausse.')}">
</input>
</form>
Lorsque l'utilisateur clique sur le bouton "Vérifier", il
provoque l'évènement onclick
qui déclenche l'exécution
du code JavaScript associé. Celui-ci indique que :
- si le bouton radio
de numéro 2 (on commence la numérotation
à 0) est sélectionné, on utilise la méthode
alert de la fenêtre pour afficher un message indiquant 'Bonne
réponse.'
- sinon on affiche une fenêtre de message indiquant 'Réponse
fausse.'.
Créer une liste de liens
Le formulaire suivant met en oeuvre une liste déroulante proposant
des liens vers différents sites WEB.
On utilise le code suivant :
<form name="listeliens">
Sélectionnez votre moteur de recherche :
<select name="choix" size=2>
<option value="http://www.altavista.com" selectED>AltaVista</A>
<option value="http://www.yahoo.fr">Yahoo</option>
<option value="http://www.lycos.com">Lycos</option>
</select>
<input type="button" name="bouton" value="GO"
onclick="location.href=
document.listeliens.choix[document.listeliens.choix.selectedIndex].value"}
</form>
Lorsque l'utilisateur clique sur le bouton "Vérifier", il
provoque l'évènement onclick qui déclenche l'exécution
du code JavaScript associé. Celui-ci provoque un changement de l'URL
de la fenêtre en utilisant la propriété value
de l'option
sélectionnée.
Le changement d'URL est obtenu en modifiant la propriété
location.href de la fenêtre. Dans le cas d'utilisation
de cadres, on pourra utiliser parent.frames[i].location.href
où i est le numéro du cadre visé.
Le numéro de l'option sélectionnée est obtenu grâce à la propriété selectedIndex de la liste.
A faire vous même (Niveau 1) :
Votre mission consiste à créer pour votre site une page permettant à un visiteur de se tester sur l'histoire de l'informatique qui se trouve sur votre site.
A faire vous même (Niveau 2) :
Votre mission, si vous l'acceptez, consiste à créer pour votre site une page permettant à un visiteur de se tester sur l'histoire de l'informatique qui se trouve sur votre site et lui permettre d'entrer en contact avec vous par E-Mail en indiquant :
- ses nom et prénom
- sa tranche d'âge, à choisir dans une liste
- son adresse électronique
- une évaluation générale, à sélectionner avec des boutons-"radio" dans une échelle allant de 'Excellent' à 'Nul'
- une opinion générale sur votre site et son contenu, sous forme de texte libre.