Les formulaires peuvent contenir des listes de choix proposant un ou plusieurs items parmi une série d'options possibles.

<select name="Identifiant" size="taille" [multiple]>
  <option value="Valeur">Label</option>
  ...
</select>

Le nom de la liste de choix permet au fichier destinataire d'identifier l'élément du formulaire afin d'opérer un traitement approprié.

Si la taille de l'élément select est égale à 1, alors une liste déroulante apparaît. Si la taille est supérieure à 1, alors une liste simple apparaît. Dans ce dernier cas, l'attribut multiple permet de créer une liste simple à choix multiples.

Les liste de choix, autorisant le client à sélectionner une seule ou plusieurs options, possèdent un identifiant unique avec des valeurs différentes pour chacun des éléments optionnels.

<select name="situation" size="1">
  <option value="Célibataire">Célibataire</option>
  <option value="Marié(e)">Marié(e)</option>
  <option value="Concubinage">Concubinage</option>
  <option value="Pacs">Pacs</option>
  <option value="Veuf(ve)">Veuf(ve)</option>
  <option value="Divorcé(e)">Divorcé(e)</option>
</select>
<select name="loisirs" size="6" multiple>
  <option value="Informatique">Informatique</option>
  <option value="Musique">Musique</option>
  <option value="Cinéma">Cinéma</option>
  <option value="Littérature">Littérature</option>
  <option value="Sport">Sport</option>
  <option value="Art">Art</option>
</select>

Le (ou les) option(s) sélectionnée(s) retourne(nt) ainsi, le nom de l'élément suivi par la (ou les) valeur(s) concernée(s).

Dans le cas d'une sélection multiples, les options non-sélectionnées sont simplement ignorées. En conséquence, en cas d'itérations, seulement les options activées sont prises en compte dans le dénombrement.

situation = Célibataire
loisirs = Informatique, Musique, Cinéma

Dans le cas où aucune valeur n'est spécifiée pour chacune des options, alors les labels feront offices de valeur implicites.

<select name="loisirs" size="6" multiple>
  <option>Informatique</option>
  <option>Musique</option>
  <option>Cinéma</option>
  <option>Littérature</option>
  <option>Sport</option>
  <option>Art</option>
</select>
loisirs = Informatique, Musique, Cinéma

L'extraction des données fournies par le client s'effectue par l'intermédiaire de l'objet Request associée à sa collection Form et le cas échéant l'identifiant de la liste de choix pour plus de précision.

Response.Write Request.Form
'retourne
situation = Célibataire

Response.Write Request.Form("situation")
'retourne
Célibataire
Exemple [voir]
<!-- Formulaire -->
<html>
  <body>
    <form action="traitement.asp" method="post">

      <select name="situation" size="1">
        <option value="Célibataire">Célibataire</option>
        <option value="Marié(e)">Marié(e)</option>
        <option value="Concubinage">Concubinage</option>
        <option value="Pacs">Pacs</option>
        <option value="Veuf(ve)">Veuf(ve)</option>
        <option value="Divorcé(e)">Divorcé(e)</option>
      </select>

      <select name="loisirs" size="6" multiple>
        <option value="Informatique">Informatique</option>
        <option value="Musique">Musique</option>
        <option value="Cinéma">Cinéma</option>
        <option value="Littérature">Littérature</option>
        <option value="Sport">Sport</option>
        <option value="Art">Art</option>
      </select>
      <br>

      <input type="submit" name="Soumettre" value="Soumission">

    </form>
  </body>
</html>
<!-- Fichier destinataire traitement.asp -->
<html>
  <body>

    <u>L'option sélectionnée par l'utilisateur est :</u><br>
    <h2><% = Request.Form("situation") %></h2>
    <h2><% = Request.Form("loisirs") %></h2>

    <p>
    <%
      For Each objElement In Request.Form
        If Request.Form(objElement).Count > 1 Then
          For increment = 1 To Request.Form(objElement).Count
            Response.Write increment & " : " & _
                           Request.Form(objElement)(increment) & "<br>"
          Next
        Else
          Response.Write Request.Form(objElement) & "<br>"
        End If
      Next
    %>
    </p>

  </body>
</html>