Avatar billede larsk Nybegynder
12. oktober 2000 - 10:34 Der er 14 kommentarer og
1 løsning

Hjælp asp include i asp

Hjæææælp til asp

Hvis jeg vil include en asp fil i en asp men vil styre det via en variable, hvordan gør man det. ?????

Jeg har prøvet med #include men her er jeg bundet til en bestemt fil.
Avatar billede geeeet Nybegynder
12. oktober 2000 - 10:38 #1
måske:

response.write \'<!--#include file=\"\' & request(\"filename\") & \'\"-->\')

?!?

/Geeeet
Avatar billede sone Nybegynder
12. oktober 2000 - 10:39 #2
Man kan ikke lave dynamisk include i ASP.
Du kan måske lave noget \"semi\" ved at bruge

  IF x THEH
    %><include....><%
  ELSE
    %><include....><%
  END IF
Avatar billede brock Nybegynder
12. oktober 2000 - 10:44 #3
Geeeet har ret, man kan ikke lave en variabel/dynamisk include file (endnu), men med den nye IIS kan man og det bliver lækkert, så vent lidt og det lykkedes jeg skal undersøge helt præcist, hvad det er og vende tilbage med syntaksen !!!
Avatar billede geeeet Nybegynder
12. oktober 2000 - 10:46 #4
hehe....

brock >> Det er vist sone som har ret, og ikke mig, men tak for tilliden... :-)

/Geeeet
Avatar billede brock Nybegynder
12. oktober 2000 - 12:01 #5
:0) !

Yes, men de to løsninger fungerer ikke, grundet rækkefølgen af afviklingen af include & ASP !!! men det problem løses ved IIS5

måske kan du bruge den her

<%
Select Case variabel
  Case \"filnavn1\"
%>
<!--#include file=\"filnavn1.asp\" -->
<%
  Case \"filnavn2\"
%>
<!--#include file=\"filnavn2.asp\" -->
<%
  Case \"filnavn3\"
%>
<!--#include file=\"filnavn3.asp\" -->
<%
  Case Else
%>
<!--#include file=\"filnavn4.asp\" -->
<%
End Select
%>

det er en skodløsning, fordi alle include bliver afviklet, så hvis der er mange bliver det en tung sag - hvis ikke så kan du til nøds bruge den

ellers

kan du bruge dette script

<html><head>
<title>Dynamiske #include filer</title>
</head><body>
<%
SourceFile = Request.QueryString(\"showfile\")
Source = Request.QueryString(\"source\")

If SourceFile <> \"\" Then
  Call ShowFile(SourceFile, Source)
  Response.Write \"<hr>\"
End If

Sub ShowFile(SourceFile,blnExecute)
  SourceFile = Server.MapPath(SourceFile)
  Set objFS = CreateObject(\"Scripting.FileSystemObject\")
  Set myFile = objFS.OpenTextFile(SourceFile, 1, False)
  If blnExecute = \"true\" Then
    strTemp = Server.HTMLEncode(myFile.ReadAll)
    strTemp = Replace(strTemp, vbCrLf, \"<br>\")
  Else
    strTemp = myFile.ReadAll
  End If
  Response.Write strTemp
  myFile.Close
  Set myFile = Nothing
  Set objFS = Nothing
End Sub
%>

<p><a href=\"dynamic_includes.asp?showfile=include1.htm&amp;source=false\">Vis include1.htm</a></p>
<p><a href=\"dynamic_includes.asp?showfile=include2.htm&amp;source=false\">Vis include2.htm</a></p>

</body></html>

som er fra

http://www.activeserverpages.dk/aspdigital/default.asp

med venlig hilsen

Brock

Avatar billede brock Nybegynder
12. oktober 2000 - 16:38 #6
Bare til sidst - hvis du bruger ASP3 / IIS5 hedder commandoan

<% Server.Execute( Request.Querystring(\"File\") & \".asp\" ) %>

Avatar billede sone Nybegynder
13. oktober 2000 - 13:18 #7
Hallo larsk... det var sgu\' da mig der svarede !!!
Avatar billede brock Nybegynder
13. oktober 2000 - 14:18 #8
Larsk - dit script duer ikke, da include bliver afviklet før asp !
Avatar billede brock Nybegynder
13. oktober 2000 - 14:19 #9
ikke lark - Sone ;)
Avatar billede sone Nybegynder
16. oktober 2000 - 12:39 #10
brock >> Det er korrekt.
De forskellige filer aksisterer så alle sammen i ASP - men på grund af IF eller SELECT CASE så er det ikke alle sammen som udføres!
Dit virker jo kun med HTML-filer (og andet) - mit virker til ASP.
Avatar billede brock Nybegynder
16. oktober 2000 - 16:15 #11
Sone - det er rigtigt, at det script jeg referer til kun virker til html-filer, men dit script inkluderer alle filer i din if/select tilfælde, hvilket gør 1) det virker ikke altid 2) det bliver ret hurtigt nogle ordentlige måderfåger filer.

Men med den nye IIS5 er det problem jo løst med
Server.Execute istedet for Include !
Avatar billede brock Nybegynder
16. oktober 2000 - 16:20 #12
Derudover bliver alle include filerne udført, hvor asp sorterer indholdet ud, grundet at include ikke er asp, så de filer du inkluderer bliver alle \"kørt\", hvilket kan give ret så mange problemer, hvis der er nogle database relationer imellem. Det er en løsning, som IKKE kan anbefales!!!

venlig hilsen

Brock

Avatar billede sone Nybegynder
16. oktober 2000 - 16:25 #13
Hvis jeg bruger koden

  IF x THEH
    %><!--#include file=\"filnavn1.asp\" --><%
  ELSE
    %><!--#include file=\"filnavn2.asp\" --><%
  END IF

Så bliver koden i filnavn2.asp da ikke kørt hvis x = true !!
Avatar billede brock Nybegynder
16. oktober 2000 - 16:49 #14
efter, hvad jeg er orienteret jo, men det vises bare ikke... så hvis filnavn2.asp indeholder noget

update tabel /delete tabel etc... bliver det udført, bare ikke vist
Avatar billede brock Nybegynder
16. oktober 2000 - 16:55 #15
Se blandt andet spørgsmålene

http://www.eksperten.dk/spm/12792
http://www.eksperten.dk/spm/16417

især
http://www.eksperten.dk/spm/7267

For det kan i den grad lave rod i din database, hvis du bruger include med if eller case ...
Det kan godt lade sig gøre, hvis man virkelig holder tungen lige i munden og ikke har noget database relateret i includefilerne, men det er altså ikke nogen løsning at efterstræbe eller anbefale

venlig hilsen

Brock
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