Avatar billede themepark Nybegynder
10. september 2003 - 06:57 Der er 10 kommentarer og
1 løsning

Server.Execute kombineret med funktioner

Jeg ved at man kan bruge Server.Execute til at udføre en ASP fil fra en anden ASP fil, men kan man ligeledes angive at udføre en bestemt funktion i den fil, man angiver med Server.Execute, eller på anden måde referere til denne funktion?
Avatar billede nielle Nybegynder
10. september 2003 - 07:51 #1
Du kan desværre ikke overføre værdier sammen med en Server.Execute() - du kan kun angive den rene asp-fil.

Server.Execute("minfil.asp")

Dvs. at Server.Execute("minfil.asp?var1=1&var2=15") ikke dur.

Men du kan sætte variabler som Session-variabler før kaldet og så kan du i "minfil.asp" bruge disse værdier til at afgøre hvilken funktion det skal kaldes.
Avatar billede nielle Nybegynder
10. september 2003 - 07:56 #2
...altså:

=== Fil nummer 1 ===

Session("WhatToDo") = "BeregnGennemsnit"
Server.Execute("statistikmodul.asp")

=== Fil nummer 2 - statistikmodul.asp ===

select case Session("WhatToDo")
case "Sum"
  call BeregbSum()
case "BeregnGennemsnit"
  call BeregnGennemsnit()
case "StandardAfvigelse"
  call StandardAfvigelse()
case else
  Response.Write("ERROR: Ukendt funktion - " & Session("WhatToDo"))
end select
Session("WhatToDo") = ""
Avatar billede themepark Nybegynder
10. september 2003 - 08:00 #3
Men er der så andre måde, hvorpå jeg fra en ASP fil kan "starte" en funktion i en anden ASP fil?
Avatar billede nielle Nybegynder
10. september 2003 - 08:37 #4
Du er jo nødt til at overføre en værdi sammen med dit kald. Ellers kan du ikke vælge hvilken funktion der skal udføres. Der er så vidt jeg kan se *kun* fire muligheder:

1) En sessions-variabel
2) Du gemmer værdien i en cookie
3) Du gemmer værdien i en database
4) Du skriver værdien i en almindeliglig tekstfil

Så vidt jeg kan vurdre så er 1) den mindst grimme.
Avatar billede themepark Nybegynder
11. september 2003 - 00:13 #5
Okay...men der er andre måder at indføre en ASP fil...f.eks. mindes jeg at have set noget med <!--include

I og med at jeg ikke nødvendigvis SKAL bruge Server.Execute til at starte den ASP fil, findes der så ikke med f.eks. include en mulighed for at starte funktionen direkte i stedet for det der med at skulle angive en værdi som du siger?

Vil godt lige være helt afklaret med om det virkelig ER den eneste mulighed :)
Avatar billede nielle Nybegynder
11. september 2003 - 12:53 #6
Du inkludere en asp fil med:

<!--#include file="FilNavnet.asp"-->

- og du kan så efterfølgende kalde dine funktioner/procedure på sædvanligvis:

<!--#include file="FilNavnet.asp"-->
MinValue = BeregnValue()  ' En funktion fra FilNavn.asp
call UdskrivStatistik()  ' En procedure fra FilNavn.asp
Avatar billede nielle Nybegynder
11. september 2003 - 12:55 #7
Udover Server.Execute("minfil.asp") så er der en alternativ:

Server.Transfer("minfil.asp")

- men den lider under de samme problemer som Execute.
Avatar billede nielle Nybegynder
11. september 2003 - 12:58 #8
Endelig kunne du jo nøjes med at have kode svarende til *en* funktion i hver af dine asp-filer.

F.eks. koden for "at beregne gennemsnit" i asp-filen BeregnGennemsnit.asp

Så ville Server.Execute("BeregnGennemsnit.asp") gøre det du skulle have gjort.

Problemet med at skulle overføre værdier til din asp-fil skyldes jo til dels at du har behov for at kunne skelne mellem de mulige funktioner... Så hvsi der kun er en...
Avatar billede themepark Nybegynder
11. september 2003 - 12:59 #9
Okay...se, DET er brugbar :)

Men er det så ligegyldigt, hvor man placerer include delen?
Avatar billede nielle Nybegynder
11. september 2003 - 13:02 #10
Ja, det er ligegyldigt.

Selv plejer jeg at placere dem i toppen.
Avatar billede themepark Nybegynder
11. september 2003 - 13:04 #11
Perfekt :)
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