Avatar billede crapman Nybegynder
17. januar 2005 - 09:26 Der er 4 kommentarer og
1 løsning

Sub til at requeste variabler

Hejsa,
Jeg står overfor at skulle requeste en fandens masse variabler. Da det ville være surt at skulle skrive 3-4 linjers kode for hver enkel, ville jeg gerne kunne lave en funktion eller sub som gør det hele for mig...

Jeg har noget af dette i tankerne:

requestfunktion("varTest", true, "var", 19)

Det den så skal gøre er at lave et request på "varTest", altså requeste det navn jeg angiver. Derefter skal den putte det i en variabel med samme navn. Hvis den næste parameter er true, er det et requried field (dvs. at man SKAL udfylde det, ellers skal den melde fejl). Den næste parameter er enten "var" eller "int". Dvs. at hvis den er "int", og man skriver tekst i request'en så skal den melde fejl.
Den sidste er så error id'et, som blot skal kalde response.write err(19) hvis der er en fejl.

Kan det lade sig gøre?
Avatar billede torben_brandt Nybegynder
17. januar 2005 - 21:16 #1
Hej

En funktion som denne opfylder vist det du kræver:
---
Set oAllInt = New RegExp
oAllInt.Pattern = "^\d*$"

' Ex.:
'  test.asp?varTest=hej+med+dig
'  requestfunktion("varTest", true, "var", 19)
Sub requestfunktion(sField, bRequired, sType, iErrCode)
If CStr(Request.QueryString(sField)) = "" And bRequired Then
' Variablen var obligatorisk, men blev ikke fundet -> Meld fejl
  Err.Raise iErrCode, "Feltet (" & sField & ") blev ikke fundet"
ElseIf sType = "int" And Not oAllInt.Test(Request.QueryString(sField)) Then
' Feltet skulle være heltal, men var det ikke -> Meld fejl
  Err.Raise iErrCode, "Feltet (" & sField & ") er ikke et heltal"
Else
  ' Alt er ok -> Gem feltværdi i variabel
  Execute(sField & " = Request.QueryString(""" & sField & """)")
End If
End Sub
---

Du kan i ovenstående udskifte .QueryString med .Form hvis det er der dine felter kommer fra. Evt kan du helt udelade det, så søger funktionen i både querystring- og form-felter.

En anden bemærkning er at selvom Execute-kaldet sker inde i en Sub, så bliver scope for den variabel der bliver dannet globalt - hvorfor det er sådan ved jeg ikke, men det hjælper os i denne situation :)

/Torben
Avatar billede crapman Nybegynder
18. januar 2005 - 08:28 #2
Uhhh kanon! Havde slet ikke tænkt på execute funktionen!

Mange tak...

Men jeg får denne fejl når jeg forsøger at bruge sub'en...

Cannot use parentheses when calling a Sub

/proddb/createnew.asp, line 1355

requestfunktion("Tech_z3", true, "int", 19)
Avatar billede crapman Nybegynder
18. januar 2005 - 08:33 #3
Ahh jeg fandt fejlen... man kan ikke bruge paranteser når der er flere variabler... anyway, jeg tror det virker... smid et svar.. :D
Avatar billede torben_brandt Nybegynder
18. januar 2005 - 13:39 #4
Jeg er ligeglad med pointene, så dem må du gerne gemme til en anden gang :)
Avatar billede crapman Nybegynder
18. januar 2005 - 13:41 #5
Oki, men tak for hjælpen anyway... :)
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