Avatar billede nbn Nybegynder
05. juni 2001 - 16:08 Der er 21 kommentarer og
1 løsning

Forlængelse af \"Flere sider i en med forskellig midterside\"

Dette spørgsmål er i forlængelse af http://www.eksperten.dk/spm/78906

Hvis jeg vil have det til at virke sådan:

<% if request.querystring(\"page\") = \"test\" then %>
<!--#include file = \"test.asp\"-->
<%end if%>

<% if request.querystring(\"page\") = \"test2\" then %>
<!--#include file = \"test2.asp\"-->
<%end if%>

osv.

Kan man så ikke gøre det på en nem måde, så man ikke gentager sig selv mange gange?
Avatar billede food4u.dk Nybegynder
05. juni 2001 - 16:12 #1
<!--#include file = \"<% = request.querystring(\"page\") %>\"-->
Avatar billede food4u.dk Nybegynder
05. juni 2001 - 16:12 #2
så skal du bare skrive noget.asp?page=test.asp

ellers kan du:
  <!--#include file = \"<% = request.querystring(\"page\") %>.asp\"--> 
Avatar billede netsrac Praktikant
05. juni 2001 - 16:13 #3
food4u.dk >> Det kan man ikke, SSI bliver inkluderet iden ASP udføres.

Se her:

http://www.netsrac.dk/netsrac-dk/asp0004.asp
Avatar billede food4u.dk Nybegynder
05. juni 2001 - 16:14 #4
Men hvorfor ikke bare ligge alle dine includes ind i hver enkelt fil?
Avatar billede food4u.dk Nybegynder
05. juni 2001 - 16:15 #5
Hmm, det mener jeg da jeg har brugt en gang med held, men det er da ikke sikkert :o)
Avatar billede nbn Nybegynder
05. juni 2001 - 16:17 #6
Fordi det ikke er så smart hvis der nu efterhånden bliver 1000 sider eller noget...
Avatar billede nbn Nybegynder
05. juni 2001 - 16:36 #7
Når filnavnet skal fremkomme via <!--#include file = \"test.asp\"--> hvordan bruger jeg så Server.ExeCute()?

Umildbart ville jeg sige

<!--#include file = \"<%
page = Request.QueryString(\"page\")
Server.Execute(page & \".asp\")
%>\"-->

men det virker bare ikke.
Avatar billede food4u.dk Nybegynder
05. juni 2001 - 16:42 #8
nbn > hmm, det kan da være lige meget, du har jo alligevel filen, så betyder det da ikke noget med en linie i bunden og i toppen?
Avatar billede netsrac Praktikant
05. juni 2001 - 16:44 #9
<%
page = Request.QueryString(\"page\")
Server.Execute(page & \".asp\")
%>

Du skal kun bruge de to linier.
Avatar billede netsrac Praktikant
05. juni 2001 - 16:44 #10
Virker forresten kun på IIS 5
Avatar billede nbn Nybegynder
05. juni 2001 - 16:45 #11
Nej, men hvis vi nu siger der var 1000 sider ville det være mindre smart at skulle gentage sig selv 1000 gange. Altså:

<% if request.querystring(\"page\") = \"test\" then %>
<!--#include file = \"test.asp\"-->
<%end if%>

<% if request.querystring(\"page\") = \"test\" then %>
<!--#include file = \"test.asp\"-->
<%end if%>

<% if request.querystring(\"page\") = \"test2\" then %>
<!--#include file = \"test2.asp\"-->
<%end if%>

<% if request.querystring(\"page\") = \"test2\" then %>
<!--#include file = \"test3.asp\"-->
<%end if%>
<% if request.querystring(\"page\") = \"test3\" then %>
<!--#include file = \"test2.asp\"-->
<%end if%>

<% if request.querystring(\"page\") = \"test4\" then %>
<!--#include file = \"test4.asp\"-->
<%end if%>

osv. op til test1000.asp
Avatar billede nbn Nybegynder
05. juni 2001 - 16:47 #12
..kom vist til at paste de første lidt for mange gange, og glemte at rette test2 ved 3\'eren. Det var nu også bare princippet i det jeg ville have dig til at indse ikke er særligt smart
Avatar billede netsrac Praktikant
05. juni 2001 - 16:48 #13
Jamen....du skal bare bruge de 2 linier!

<%
page = Request.QueryString(\"page\")
Server.Execute(page & \".asp\")
%>

Hvis man kalder den med side.asp?page=test1

bliver test1.asp inkluderet, kalder man den med side.asp?page=test100000
bliver test100000.asp inkluderet.
Avatar billede nbn Nybegynder
05. juni 2001 - 16:50 #14
netsrac: Object doesn\'t support this property or method: \'Server.Execute\'

Avatar billede netsrac Praktikant
05. juni 2001 - 16:53 #15
Det virker kun på IIS 5.
Avatar billede nbn Nybegynder
05. juni 2001 - 16:55 #16
Uhm, det understøtter den server nok ikke så.
Findes der alternativer til hvordan problemet kan løses?
Avatar billede netsrac Praktikant
05. juni 2001 - 17:10 #17
Hmm...kan da lige lave en funkton til det.

function ServerExecute(fil)
set fso = server.CreateObject(\"Scripting.filesystemObject\")
set file = fso.opentextfile(server.mappath(fil))
response.write(file.readall)
set file = nothing
set fso = nothing
end function

Så kalder du den bare sådan her:

page = Request.QueryString(\"page\")
ServerExecute(page & \".asp\")
Avatar billede nbn Nybegynder
05. juni 2001 - 19:58 #18
Nu er mit bekendskab til asp ikke så stort, så hvor skal jeg placere funktionen?
Avatar billede netsrac Praktikant
05. juni 2001 - 20:52 #19
Du kan bare placere funktion i topppen af siden i <% og %> self.
Avatar billede food4u.dk Nybegynder
05. juni 2001 - 20:55 #20
Kommentar fra nbn 
05/06 2001 16:45:56

Jeg mener, at den fil du inkludere testxx.asp i, kan du splitte op i to, top.asp og bund.asp, disse sætter du så ind i alle dine sider, så har du ingen problemer
Avatar billede nbn Nybegynder
06. juni 2001 - 01:57 #21
netsrac:

Får stadig fejlen \"Object doesn\'t support this property or method: \'server.Execute\'\"

food4u.dk: Jo, sådan kunne man gøre det, men det var det jeg i første omgang ville undgå (http://www.eksperten.dk/spm/78906)
Avatar billede netsrac Praktikant
06. juni 2001 - 11:16 #22
nbn >> Du skal bruge den uden . altså ServerExcute(page & \".asp\")
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