Collection Request.QueryString
|
Synopsis
Request.QueryString(Variable)[(Index)|.Count] |
Lecture seule
Cette collection est utilisée pour manipuler la chaîne de requête ("query string" en anglais)
que le client envoie au serveur pour faire sa requête. La query string est la partie de l'URL qui suit le point
d'interrogation. Par exemple, dans l'URL http://www.monserveur.com/page.asp?var1=toto&var2=titi, la chaîne
de requête est var1=toto&var2=titi.
Cette collection est très utile pour les formulaires que l'on a envoyés au
serveur par la méthode GET, ou pour transmettre simplement une variable d'une page à une autre.
Request.QueryString fonctionne de la même façon que Request.Form :
Variable est le seul paramètre obligatoire, Index et Count étant
optionnels.
Utilisation de la collection
Récupérer les variables
Pour récupèrer les variables passées dans l'URL ou les données d'un formulaire envoyé par
la méthode GET, on utilise tout simplement leur nom :
|
Si l'URL est http://www.monserveur.com/page.asp?var1=toto&var2=titi, la collection
Request.QueryString contiendra les éléments Request.QueryString("var1")
(qui vaut "toto"), et l'élément Request.QueryString("var2") (qui vaut "titi").
Une telle URL peut être construite avec le formulaire suivant :
<FORM action="formulaire.asp" method="get">
<INPUT type="text" name="var1" value="toto">
<INPUT type="text" name="var2" value="titi">
<INPUT type="submit" value="envoyer">
</FORM>
|
En VBScript, comme toutes les collections, il est possible de parcourir Request.QueryString avec une boucle
For Each ... Next :
For Each element In Request.QueryString
Response.Write(element & " = " & Request.QueryString(element))
Next
|
Les variables à valeurs multiples
De telles variables se rencontrent lorsqu'on utilise des listes à choix multiple ou des zones de cases
à cocher dans des formulaires (en fait, dè l'instant où plusieurs éléments du
formulaire portent le même nom). On manipule ces variables avec cette collection de la même façon
qu'avec la collection Request.Form. Index est un indice allant de 1
à Request.QueryString(...).Count :
|
Formulaire initiale :
<FORM action="formulaire.asp" method="get">
<SELECT name="liste" size="10" multiple>
<OPTION value="element_1">element 1</OPTION>
<OPTION value="element_2">element 2</OPTION>
...
</SELECT>
<INPUT type="submit" value="OK">
</FORM>
ou :
<FORM action="formulaire.asp" method="get">
<INPUT type="checkbox" name="liste" value="element_1"> element 1<BR>
<INPUT type="checkbox" name="liste" value="element_2"> element 2<BR>
...
<INPUT type="submit" value="OK">
</FORM>
formulaire.asp :
<%
Response.Write(Request.QueryString("liste").Count & " elements :<BR>")
For i = 1 To Request.QueryString("liste").Count
Response.Write(Request.QueryString("liste")(i) & "<BR>")
Next
%>
|
Ce qui donne, si on a sélectionné ou coché les éléments 1, 5 et 13 :
3 elements :
element_1
element_5
element_13
|
L'URL qui a été envoyée au serveur est :
formulaire.asp?liste=element_1&liste=element_5&liste=element_13 |
On peut enfin noter que l'on peut directement récupérer la chaîne de requête en
appelant directement Request.QueryString :
Response.Write(Request.QueryString) donne par exemple var1=toto&var2=titi
|
Warning: main(../include/imprimable.php) [function.main]: failed to open stream: No such file or directory in /homez.13/themanua/www2/asp/asp_request_querystring.php3 on line 155
Warning: main() [function.include]: Failed opening '../include/imprimable.php' for inclusion (include_path='.:/usr/local/lib/php') in /homez.13/themanua/www2/asp/asp_request_querystring.php3 on line 155
|