Eksempel:
<%
Function FindNavne()
Response.Write "Det virker"
End Function
Set varFunc = GetRef("FindNavne")
Call varFunc
%>
... GetRef er også en kandidat
Du kan også prøve med noget OOP og lave en Class med din funktion som Public Function. Så kan du instantiere Objektet i et valgfrit variabelnavn?
Jeg har siddet og rodet lidt med det her problem uden at have løst det.
Lige lidt mere beskrivelse:
jeg har omkring 50 funktioner på en side. Det er kun en af dem der skal køres. Hvilken en bestemmes ud fra url'en
minSide.asp?func=funcNr34
Ud fra dette her, skal den køre functionen med navnet funcNr34
Kan I give et eksempel på hvordan det kan gøres?
prøv:
Set varFunc = GetRef(Request("func"))
Call varFunc
Så kom der lige en ny dimission på problemet, jeg bliver nødt til at have en parentes med i functionen.
Jeg har nu prøvet at skrue det sammen sådan her, men det virker desværre ikke.
if request("opg") = "plus1" then
Set varFunc = GetRef("FuncPlus1(opgave, resultat, FTal, ATal)")
end if
Call varFunc
Hvordan får jeg dette til at virke?
Du skal ikke angive args i getref men kun i kald.
Eksempel:
<%
Function FindNavne(s)
Response.Write "Det virker med " & s
End Function
Set varFunc = GetRef("FindNavne")
Call varFunc("ABC")
%>
Her når jeg sidder og arbejder lidt med det, kan jeg se det ender med at de forskellige functioner får nogle forskellige args.
Her er et lille udpluk af de forskellige functioner, hvoraf der KUN er en der skal kaldes, og det bestemmes ud fra URL'en f.eks. minSide.asp?func=FuncPlus5
call FuncPlus1(opgave,resultat,FTal,ATal)
call FuncPlus5(opgave,resultat,FTal,ATal,TTal)
call brok3(opgave,resultat,hel1,Taeller1,Naevner1,hel2,Taeller2,Naevner2)
call FuncKurs2(opgave,resultat,Land,Kurs,FTal)
Er der ikke en smart måde, hvor jeg gør sådan, at hver gang jeg kalder en function er det den der er defineret i url'en?
Eller bliver jeg nødt til at bygge mit Call op i en række if sætninger?
Hvis du vil bruge getref til at skå navnet op skal du have en wrapper uden argumenter.
Funcrtion FP1()
call FuncPlus1(opgave,resultat,FTal,ATal)
End Function
og så sende FP1 med over og kalde den.
Yes, nu virker det.
Mange tak for hjælpen, og din tålmodighed ;-)
Arne_v opret bare et svar