Avatar billede sb Nybegynder
18. januar 2003 - 11:09 Der er 11 kommentarer og
1 løsning

Hente værdier fra querystringen

Jeg har et script som får parset en URL til sig, i form af en querystring. Det kan f.eks. se sådan ud:

fil.asp?http://domene.dk/fil.asp?x=4&y=5&h=56

Jeg kan jo hente hele querystrengen ud med "request.querystring", men hvordan får jeg hentet ud de enkelte værdier, x, y og h?.

request.querystring("x") går jo selvf. ikke her.
Avatar billede hossein Nybegynder
18. januar 2003 - 12:40 #1
Det kommer an på hvordan du har opbygget din side, men jeg gætter på at det er noget i den stil som du vil ha:

http://domene/fil.asp?n=noget&n=nogetandet

fil.asp indeholder dette script:

<%
for i=1 to Request.QueryString("n").Count
  Response.Write(Request.QueryString("n")(i) & "<br />")
next
%>
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:13 #2
Vil du havde det ud i nogle variable x, y, h ???
Sådan at der oprettes en variable med det navn som og den værdi som er angivet i QueryStringen?
Avatar billede sb Nybegynder
18. januar 2003 - 13:15 #3
eagleeye> Det havde jo selvf. været helt optimalt hvis det var muligt
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:23 #4
Det kan man med Execute functionen sådan her:


<%
for each item in Request.QueryString
  Execute (item & " = " & Request.QueryString(item))
next
%>

Så kan du bruge x,y,h som variable i din kode.
Avatar billede sb Nybegynder
18. januar 2003 - 13:27 #5
eagleeye> Jeg får fejlmeldingen "Expected statement" i linien "Execute (item & " = " & Request.QueryString(item))"
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:31 #6
Underligt..

Hvis der er nogle querystrings som er tekst så skal der " omkring eller kommer teksten ikke med, sådan her:

for each item in Request.QueryString
  Execute (item & " = """ & Request.QueryString(item) & """")
next


Hvad hvis du bare skriver sådan her kommer der så også fejl?

execute ("i=2")
response.write i
Avatar billede sb Nybegynder
18. januar 2003 - 13:43 #7
Det forstår jeg ikke helt. Jeg kan fint hente værdien af alle parametrerne med:

for each item in Request.QueryString
  response.write item & "=" & request.querystring(item) & "<br>"
next

Nå men pyt pyt, så hiver jeg bare hvert enkelt set af parametre/værdier over i en dictionary, så kan jeg enkelt hente hver enkelt på den måde.
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:48 #8
Det jeg tænke på er om execute evt kun virker i nyere versioner af ASP så hvis du som test prøvede at skrive:

execute ("i=2")
response.write i

Så kunne du se om execute virkede.
Avatar billede sb Nybegynder
18. januar 2003 - 13:50 #9
execute ("i=2")
response.write i

Virker helt fint. Her får jeg ingen fejlmelding
Avatar billede eagleeye Praktikant
18. januar 2003 - 13:53 #10
Det lyder lidt mærkeligt prøv at ændre store E til lille i Execute, så skal dette også virke..:


for each item in Request.QueryString
  execute  (item & " = """ & Request.QueryString(item) & """")
next
Avatar billede sb Nybegynder
18. januar 2003 - 13:58 #11
Nej jeg får den samme fejlmelding
Avatar billede eagleeye Praktikant
18. januar 2003 - 15:19 #12
Det forstår jeg ikke..prøv med denne selvom det ikke skulle ændre noget...:

execute  ("" & item & " = """ & Request.QueryString(item) & """")


Hvis du kopier fra ekspten kan det være en god ide først at paste ind i notepad og så ind i en ASP/HTML editor da der kan komme nogle tegn med som man ikke kan se i linien. Prøv at stille curseren efter """") og tyrkke på delete indtil next kommer op lige efter """")  og tryk på return...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester