Les formulaires 3/3

Il existe plusieurs moyens lorsque l'on rempli un formulaire pour proposer des options :

  • les cases à cocher
  • les zones d'options
  • les listes déroulantes

Les éléments d'options

La case à cocher

Pour rédiger une case à cocher, on emploie la balise input avec l'attribt type="checkbox". La case à cocher admet deux états: checked (coché) et unchecked (non coché). On peut précocher une case avec l'attribut checked="checked". Voici la manière de rédiger :

 
<form>
<p>Cocher vos destinations de rêve:<br>
<label for="plage"> La plage n'importe où</label>
           <input type="checkbox" name="plage">
            <br><label for="bretagne"> La Bretagne</label>
           <input type="checkbox" name="bretagne">
            <br><label for="USA"> Les États-Unis</label>
           <input type="checkbox" name="USA">
           <br><label for="Asia"> L'Asie</label>
           <input type="checkbox" name="Asia"></p>
</form>

Et le résultat :

Balise input type= "checkbox"

Cocher vos destinations de rêve :



Les zones d'options

Dans les zones d'options le visteur ne pourra faire qu'un seul choix parmi plusieurs proposés. Attention, l'ensemble des boutons radios devant porter le même attribut name.La paire nom/valeur du bouton radio sélectionné sera envoyé au CGI. Un attribut checked placé sur un des boutons permet de préciser le bouton sélectionné par défaut. Pour rédiger

 
<form>
<p>Quelle est votre tranche d'âge:<br>
           <input type="radio" name="age" value="18-30">
            <label for="18"> 18 - 30 ans</label><br>
           <input type="radio" name="age" value="30-45">
            <label for="30"> 30 - 45 ans</label><br>
           <input type="radio" name="age" value="46-60">
           <label for="50"> 46 - 60 ans</label><br>
           <input type="radio" name="age" value="+ 60">
           <label for="70"> Plus de 60 ans</label>
           </p>
</form>

Et le résultat :

Balise input type= "radio"

Quelle est votre tranche d'âge:



Les listes déroulantes

La balise <select><option>...</option></select> permet de créer une liste déroulante présentant plusieurs choix. Les options sont caractérisées par un texte et une valeur (attribut value). Les attributs de cette balise sont :

  • name : c'est le nom associé au champ qui permettra d'identifier le champ dans la paire nom/valeur
  • size : représente le nombre de lignes dans la liste (cette valeur peut être plus grande que le nombre d'éléments effectifs dans la liste)
  • multiple : marque la possibilité pour l'utilisateur de choisir plusieurs champs dans la liste

Voici un exemple de liste déroulante :

<form>
  <select name="D2" size="1">
  <option selected="selected">Choix 1</option>
  <option>Choix 2</option>
  <option>Choix 3</option>
  <option>Choix 4</option>
  </select>
  </form>
Balise select, liste déroulante

Voici un autre exmple avec l'attribut multiple :

<form>
  <select name="select" multiple="multiple" size="4">
  <option>Choix 1</option>
  <option>Choix 2</option>
  <option>Choix 3</option>
  <option>Choix 4</option>
  </select>
  </form>

Pour présélectionner une option, on emploie l'attribut : selected="seleceted" :

<form>
  <select name="D3" multiple="multiple" size="3">
  <option selected="selected">Choix 1</option>
  <option>Choix 2</option>
  <option>Choix 3</option>
  <option selected="selected">Choix 4</option>
  </select>
  </form>

Finaliser son formulaire

Une fois le formulaire rédigé , voici les derniers éléments à ajouter :

Rendre un champ obligatoire

Pour que le visiteur remplisse un champ obligatoirement, on emploie un même attribut :

  • required : sans ajouter de valeur
 <form> <label for="nom">Votre nom :</label><input type="text" name="nom" required /></form>

Pour rendre cette obligation visible, on emploie les feuilles de style :

    :required {
     border: 1px solid red;
}

Les boutons d'envoi

  • Le premier bouton input type="submit": doit être inséré en fin de formulaire, et ce une seule fois. C'est le bouton de soumission qui permet l'envoi du formulaire. Le texte du bouton peut être précisé grâce à l'attribut value.
<form><input type="reset" value="Envoyer" /></form>

Comme la valeur de l'attribut value est envoyer, c'est ce mot qui apparaît dans le bouton :

input type="submit"
  • Le deuxième bouton input type="reset": doit être inséré en fin de formulaire, ce bouton permet remise à zéro; il rétablit l'ensemble des éléments du formulaire à leurs valeurs par défaut. Le texte du bouton peut être précisé grâce à l'attribut value.
<form><input type="submit" value="Rétablir" /></form>

Comme la valeur de l'attribut value est rétablir, c'est ce mot qui apparaît dans le bouton :

input type="reset"
  • Le troisième bouton input type="hidden": est un champ caché. Ce champ non visible sur le formulaire permet de préciser un paramètre fixe qui sera envoyé au CGI sous forme de paire nom/valeur.
  • Le quatrième bouton est le input type="image": il s'agit d'un bouton de soumission personnalisé, dont l'apparence est l'image situé à l'emplacement précisé par son attribut src

Envoi des données

Lorsqu'un formulaire est soumis, les données présentes dans le formulaire sont envoyées au script CGI sous forme de paires nom/valeur, c'est-à-dire un ensemble de données représentées par le nom de l'élément de formulaire, le caractère "=", puis la valeur associée. L'ensemble de ces paires nom/valeur étant séparées entre elles par des esperluettes (caractère &). Les données envoyées ressembleront donc à ceci :

champ1=valeur1&champ2=valeur2&champ3=valeur3

Dans le cas de la méthode GET (envoi des données à travers l'URL), l'URL ressemblera à une chaîne du genre :

http://url/cgi-bin/script.cgi?champ1=val1&champ2=val2