Avatar billede ch007 Nybegynder
11. august 2005 - 11:20 Der er 11 kommentarer og
1 løsning

Include file fra DB

Jeg vil gerne include en fil på en anden side. Normalt har jeg brugt noget der ligner:

If request("link") = "1" thne
<!--#include file"start.asp"-->

OSv...

Kan det lade sig gøre at lave en menu og hente hvilken side den skal include i en db?

(MySQL)

Noget i retning af:

<!--#include file=<% RS("Link") %>.asp-->

Så jeg ikke brhøver at liste alle mine sider her, men kan liste den i min db og så kun hente den der skal bruges...

Er det forståeligt?
Avatar billede busschou Praktikant
11. august 2005 - 11:23 #1
nej det kan ikke lade sig gøre
alle includes udføres _før_ din asp kode!
men du kan benytte server.execute istedet
Avatar billede busschou Praktikant
11. august 2005 - 11:23 #2
altså
server.execute RS("Link")&".asp"
Avatar billede ch007 Nybegynder
11. august 2005 - 11:24 #3
Hvad vil det sige? Virker det?
Avatar billede softspot Forsker
11. august 2005 - 11:27 #4
Det stiller bare nogle andre krav til transport af globale variabel og funktioners tilgængelighed, da disse ikke bliver synlige for det script der udfører Server.Execute, som de ellers ville med includes...
Avatar billede busschou Praktikant
11. august 2005 - 11:28 #5
dvs at du kan ikke benytte include file til at lave et dynamisk layout!
Men du kan benytte server.execute
Avatar billede busschou Praktikant
11. august 2005 - 11:29 #6
alternativt til server.execute kan man benytte server.transfer
De har hver deres fordele og ulemper
Men ja det er muligt :o)
Avatar billede busschou Praktikant
11. august 2005 - 11:29 #7
det du skriver
---
If request("link") = "1" thne
<!--#include file"start.asp"-->
---
er heller ikke muligt :o)
Avatar billede busschou Praktikant
11. august 2005 - 11:30 #8
Avatar billede ch007 Nybegynder
11. august 2005 - 11:32 #9
Jubii - busschou

Det virker. Men kan du fortælle mig hvad forskellen er.

Betyder det noget om jeg bruger include eller dette server.execute ???
Avatar billede ch007 Nybegynder
11. august 2005 - 11:33 #10
Hvorfor virker min:

---
If request("link") = "1" thne
<!--#include file"start.asp"-->
---

ikke? Altså hvis der nu stod then istedet for thne
Avatar billede softspot Forsker
11. august 2005 - 11:34 #11
Hmmm... formuleringen af "transport af globale variabel og funktioners tilgængelighed" var vist ikke helt korrekt, men jeg håber det trods alt blev nogenlunde klart at tilgængeligheden af funktioner og variable fra det kaldende script er væsentlig indskrænket ved brugen af Server.Execute.
Avatar billede busschou Praktikant
11. august 2005 - 11:41 #12
ch007 >> du kan se lidt forklaring i linket jeg gav :o) , det er fordi det udføres _før_ din asp kode, derfor er det lige gyldigt om din if sætning er opfyldt eller ej så includeres filen, include file er SSI og det køres før asp, spørg mig ikke hvorfor ;o) men det gør det :o)

angående server.execute og server.transfer kan du se definitionerne her
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/db562da1-d49d-4fe5-9747-64ef530de23f.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/d47bdda3-96e1-46c3-b872-a038c2a61317.asp
--
der er stor forskel, execute gør faktisk det at den siger til browseren at siden er udløbet og at browseren skal henvende sig på den nye side
Det betyder at du får den fulde sti i adressen, og at browseren laver et ekstra "opkald" til serveren
Ved transfer så videresender serveren dig, dvs du kan ikke se den nye sti i browserens adresselinje, men det betyder også at alle stier der er defineret i den fil som skal udføres skal rettes til efter man ikke fysisk står i den mappe som filen ligger i

Det er sådan jeg har opfattet noget af forskellen :o)
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