Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.

<form action="page.asp" method="post|get">
  Eléments du formulaire...
</form>

L'attribut action pointe un fichier destinataire des données saisies par le client. Cette cible, une page ASP, posséde des scripts VBScript ou JScript permettant de traiter les informations contenues dans le formulaire.

Les méthodes POST ou GET définissent le type de transmission à utiliser dans le traîtement du formulaire vers le serveur. POST envoie le fichier complet au serveur alors que GET se sert de la variable QUERY_STRING pour transmettre les informations.

Les informations saisies par un utilisateur dans les éléments d'un formulaire peuvent être récupérées par l'intermédiaire de l'objet Request.

La collection Form contient toutes les valeurs entrées dans les éléments d'un formulaire.

L'extraction des données à partir d'une collection Form s'effectue comme suit :

Request.Form

Les données retournées par l'utilisateur répondent à la construction suivante :

NomElt=Valeur&Nom_Elt2=Valeur2&...&Nom_EltN=ValeurN

Cette forme semble peu pratique pour une utilisation ultérieure des valeurs dans des programmes ASP.

Une autre forme permet d'extraire les valeurs plus précisément.

Request.Form(Nom_Elément)

Il est également possible de remplacer le nom de l'élément par un indice représentant la position de l'élément concerné, en sachant que l'élément le plus haut dans le formulaire, possède un indice égal à 1.

Request.Form(Indice)

Dans les deux cas, la valeur retournée est unique et se réfère exactement à l'élément spécifiée.

...
<input type="text" name="Nom">
<input type="text" name="Prénom">
<input type="text" name="Pseudonyme">
...
'Retourne la valeur de l'élément Nom
Response.Write Request.Form("Nom")
'Retourne la valeur de l'élément Prénom
Response.Write Request.Form("Prénom")
'Retourne la valeur de l'élément Pseudonyme
Response.Write Request.Form(3)
...

Par ailleurs, deux méthodes permettent de parcourir les éléments de la collection Form.

  • La première utilise la propriété Count associé à une boucle For...To...Next.
  • For increment = 1 To Request.Form.Count
      Element = Element & Request.Form(increment) & "<br>"
    Next
  • La seconde consiste à utiliser une boucle For Each...In...Next.
  • For Each objElement In Request.Form
      Element = Element & Request.Form(objElement) & "<br>"
    Next

Enfin, la gestion des élements à valeurs multiples d'un formulaire peut s'effectuer également par l'intermédiaire de la structure ci-dessous.

<!-- Formulaire -->
<html>
  <body>
    <form action="reponse.asp" method="post">

      <input type="text" name="PrenomFrereSoeur">
      <input type="text" name="PrenomFrereSoeur">
      <input type="text" name="PrenomFrereSoeur">
      <input type="text" name="PrenomFrereSoeur">
      <input type="text" name="PrenomFrereSoeur">

    </form>
  </body>
</html>
<!-- Page de réponse reponse.asp -->
<html>
  <body>
    For Each objElement In Request.Form
      If Request.Form(objElement).Count > 1 Then
        For increment = 1 To Request.Form(objElement).Count
          Element = Element & Request.Form(objElement)(increment) _
                           & "<br>"
        Next
      Else
        Element = Element & Request.Form(objElement) & "<br>"
      End If
    Next
  </body>
</html>