Avatar billede morten_21 Nybegynder
08. oktober 2006 - 22:49 Der er 5 kommentarer og
1 løsning

Include i en if-funktion som i PHP..

Go'aften.

Sidder og prøver kræfter med ASP for første gang, og savner en funktion lignende dette PHP:

<?php
$page=$_GET['page'];

if ($page == !0) {
    include("$page.inc.php"); 
        }
else {
    include("default.inc.php"); 
        }   
?>

Altså - hvis man kalder siden som "side.php" inkluderer den default.inc.php. Og hvis man kalder siden som "side.php?page=produkter", inkluderer den produkter.inc.php.

Hvordan laver man noget tilsvarende i ASP?
Avatar billede softspot Forsker
08. oktober 2006 - 22:54 #1
Du kan evt. benytte Server.Execute, f.eks.:

<%
page = Request.QueryString("page") & ""
if page <> "" then
  Server.Execute page & ".inc.asp"
else
  Server.Execute "default.inc.asp"
end if
%>
Avatar billede morten_21 Nybegynder
09. oktober 2006 - 08:48 #2
Kanon, det virker jo bare som det skal :-)

Hvis include-filerne ligger i en undermappe, hvordan skal denne linje så se ud:

Server.Execute page & ".inc.asp"

?
Avatar billede madeindk Nybegynder
09. oktober 2006 - 09:15 #3
Prøv med.

<%
page = Request.QueryString("page") & ""
if page <> "" then
  Server.Execute "/dinUndermappe/" & page & ".inc.asp"
else
  Server.Execute "default.inc.asp"
end if
%>
Avatar billede softspot Forsker
09. oktober 2006 - 09:43 #4
Ja, det er bare at smide stien foran som madeindk viser.

Du skal være opmærksom på at Server.Execute ikke fungerer som en include i traditionel forstand, men snarere som et funktionskald der returnerer til siden efter endt udførsel. Du kan derfor ikke erklære globale variable i et script som udføres med Server.Execute og derefter referere disse f.eks. den side som kalder scriptet (hvilket du kan med include-direktivet). Scripts der udføres med Server.Execute kan dog caches mere effektivt af serveren end filer der indlæses med include-direktivet. Desuden bliver koden mere modulariseret, hvis du kan få din arkitektur strikket sammen så den kører med Server.Execute (og Server.Transfer), hvilket ofte gør din applikation lettere at vedligeholde, da du kun skal tage stilling til en asp-fil ad gangen og ikke en hel masse filer som er inkluderet i en stor (givetvis) rodet bunke... :)

NB: include-direktivet er naturligvis en af følgende varianter, som skal stå i HTML-sektionen af dine asp-sider:

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

<!-- #include virtual = "fil.asp" -->
Avatar billede morten_21 Nybegynder
09. oktober 2006 - 10:02 #5
Tak for forklaringen og hjælpen :)
Avatar billede softspot Forsker
09. oktober 2006 - 10:08 #6
Velbekomme og tak for point :)
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