17. januar 2005 - 09:26Der 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.
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 :)
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.