Avatar billede Slettet bruger
17. august 2003 - 10:11 Der er 54 kommentarer og
1 løsning

Include-filer?

Hejsa.
Jeg ønsker en simpel menu som fungerer via include-filer. Men jeg kender stort set intet til det. :~(

Jeg har lavet en opsætning i frames, for at illustrere hvordan strukturen skal være.
Det kan ses her:
www.extend.dk/test/index.asp

Håber at en eller anden herinde kan hjælpe mig med lidt kilde-koder.

På forhånd tak.
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:13 #1
Hvad er det du mangler?
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:14 #2
Du vil altså lave noget tilsvarende med brug af includes istedet for frames?
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:15 #3
F.eks. kunnde dette være side1.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Sidens titel</title>

</head>

<body>
<!--#include file="menu.asp"-->

<!--#include file="side1.asp"-->
</body>
</html>
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:15 #4
kunnde = kunne
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:16 #5
Eller når du nu bruger asp, kunne du lave det hele på en side:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Sidens titel</title>

</head>

<body>
<!--#include file="menu.asp"-->

Select Case Request.Querystring("id")
    Case 1
        Response.Write "Indhold af side 1"
    Case 2
        Response.Write "Indhold af side 2"
    Case 3
        Response.Write "Indhold af side 3"
End Select


</body>
</html>
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:17 #6
Så skulle menu.asp bare indeholde:

<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
Avatar billede Slettet bruger
17. august 2003 - 10:18 #7
Måske lige en lidt mere uddybende forklaring:

Den øverste del (menuen) skal også senere indholde et billede/logo. Og hele ideen er, at brugeren ikke skal gen-indlæse hele siden, hver gang brugeren klikker på et link.
Derfor ønsker jeg kun at indlæse indholdssiderne (side_1.asp, side_2.asp, osv.), når der klikkes på et link.
Avatar billede Slettet bruger
17. august 2003 - 10:19 #8
Uha uha, hvor er I hurtige!
Avatar billede Slettet bruger
17. august 2003 - 10:20 #9
Tak Thomas. Jeg vil lige lave en kop kaffe, og rode lidt med det.

Vender tilbage snart!
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:21 #10
Hvis du ikke vil have, at hele siden skal opdateres ved klik på link, er du nødt til at bruge frames. Menuen bliver ikke stående fordi du bruger includes.
Avatar billede Slettet bruger
17. august 2003 - 10:23 #11
Det var ellers det som var hele meningen... *øv*
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:25 #12
Ja, men det kan du kun gøre med frames. Menuen skal dog ikke hentes hver gang, hvis den gemmes i brugerens cache, men hele siden opdaterer.
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:26 #13
Jeg synes nu heller ikke det gør noget at hele siden opdaterer. Det gør næsten alle sider jo efterhånden, fordi man ikke bruger frames så meget mere, men derimod asp/php.
Avatar billede Slettet bruger
17. august 2003 - 10:29 #14
Er du sikker på, at det ikke kan lade sig gøre? Mener at jeg har hørt, at det godt kan lade sig gøre.
Men ok, så må jeg vel bare bruge frames igen.

MEN:
Hvis jeg alligevel bruger din løsning, er der en enkelt ting jeg ikke lige forstår:
========================================
Index.asp:

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

Select Case Request.Querystring("id")
    Case 1
        Response.Write "Indhold af side 1"
    Case 2
        Response.Write "Indhold af side 2"
    Case 3
        Response.Write "Indhold af side 3"
End Select
=======================================
menu.asp:
<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
========================================
Hertil klart nok (sådan cirka).  :~]


Men hvad pokker hedder indholdssiderne så? Side_1.asp eller hvad?
Avatar billede Slettet bruger
17. august 2003 - 10:35 #15
Nåååe, nu kan jeg se det: Det er i  Response.Write "Indhold af side 1" at alt mit indhold af indholdsside 1 (tables, pics o.a.) skal være. Det bliver da en lidt rodet affære, er jeg bange for...
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:35 #16
Det nemmeste for dig ville da være at lave det hele i den side: default.asp. Den kunne så se sådan ud:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Sidens titel</title>

</head>

<body>
<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>

<br><br>

Select Case Request.Querystring("id")
    Case 1
        Response.Write "Indhold af side 1"
    Case 2
        Response.Write "Indhold af side 2"
    Case 3
        Response.Write "Indhold af side 3"
End Select


</body>
</html>
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:35 #17
den side = én side
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:37 #18
Hvis den så bliver uoverskuelig, kan du flytte noget ud i include-filer:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Sidens titel</title>

</head>

<body>
<!--#include file="menu.asp"-->

<br><br>

Select Case Request.Querystring("id")
    Case 1
        <!--#include file="side1.asp"-->
    Case 2
        <!--#include file="side2.asp"-->
    Case 3
        <!--#include file="side3.asp"-->
End Select


</body>
</html>
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:37 #19
Ja det kan nemt blive rodet, men så bruger du bare mit sidste forslag med include-filer.
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:38 #20
Så har du også på en simpel måde adskilt design og indhold og det er som regel at foretrække.
Avatar billede Slettet bruger
17. august 2003 - 10:43 #21
Hmmm... jeg er nu ikke jublende lykkelig for den løsning. ;~]

MEN:
Jeg fandt noget på nettet, som måske er en bedre løsning?
Se her:
=======================================
<!--#include file="menu.asp"-->
        <% if request.querystring("side") = "1" then %>
        <!--#include file="side_1.asp"-->
        <% elseif request.querystring("side") = "2" then %>
        <!--#include file="side_2.asp"-->
        <% else %>
        <!--#include file="start.asp"-->
        <% end if %>
=======================================

Her er ihvertfald en løsning, hvor der indlæses en indholdsside ("side_1.asp, side_2.asp, osv.) ved klik på et link, ikke?

Måske du gidder at hjælpe mig med at tilpasse denne løsning i stedet for?
Som sagt: Jeg er bestemt ikke expert i asp...
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:44 #22
Jo, det gør præcis det samme som mit sidste forslag. Mit var bare stillet pænere op :-)
Avatar billede Slettet bruger
17. august 2003 - 10:44 #23
Jeg kigger lige lidt mere på dit sidste forslag, Thomas.

Man kan nemt komme til at "gå forbi hinanden" herinde, når man skriver til hinanden uden at få opdateret.  ;~]
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:47 #24
Det smarte ved det er, at du i default.asp laver alt design, i menu.asp din menu og i side1, 2, 3 laver du indholdet til siderne. Prøv at bruge dette og så lav menu.inc, side1.inc osv. og se om det ikke kan bruges:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Sidens titel</title>

</head>

<body>
<!--#include file="menu.asp"-->

<br><br>

Select Case Request.Querystring("id")
    Case 1
        <!--#include file="side1.asp"-->
    Case 2
        <!--#include file="side2.asp"-->
    Case 3
        <!--#include file="side3.asp"-->
    Case Else
        Response.Write "Siden blev ikke fundet."
End Select


</body>
</html>
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:47 #25
hehe, ja det er derfor jeg sætter min outlook til at hente mail hvert minut. :)
Avatar billede Slettet bruger
17. august 2003 - 10:49 #26
Ved du hvad? Jeg roder selv lidt videre med dit sidste forslag.
Håber at jeg kan finde ud af det. *gys*

Men jeg vil ihvertfald give dig point med det samme, som mange tak for hjælpen, Thomas.  :~]
Avatar billede Slettet bruger
17. august 2003 - 10:53 #27
Du skriver:
"...Prøv at bruge dette og så lav menu.inc, side1.inc osv..."
Det vil altså sige, at menusiden og indholdssiderne skal hedde  .inc som fil-type-navn?

Igen: Jeg er bestemt ikke expert til dette...
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:54 #28
Undskyld, min fejl. Nej hvis du kalder dem .inc vil andre kunne hente dem på serveren. Kald dem menu_inc.asp osv. istedet og husk at skrive det samme i din default.asp, hvor de kaldes fra.
Avatar billede -thomas- Nybegynder
17. august 2003 - 10:55 #29
Og tak for point. :)
Avatar billede Slettet bruger
17. august 2003 - 11:06 #30
Hvis jeg ikke var forvirret før, er jeg det ihvertfald nu.  :~(

Lige for at samle alle brikkerne et sted:
=======================================
default.asp :

<!--#include file="menu.asp"-->
<br><br>
Select Case Request.Querystring("id")
    Case 1
        <!--#include file="side1.asp"-->
    Case 2
        <!--#include file="side2.asp"-->
    Case 3
        <!--#include file="side3.asp"-->
    Case Else
        Response.Write "Siden blev ikke fundet."
End Select
=======================================
menu.asp :

<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
=======================================
side1.asp, side2.asp og side3.asp :

En masse indhold (tables, pics o.a.).
=======================================

Hjælp mig lige med at få rettet fejlene og få det til at virke, så vil jeg være glad, Thomas.  :~]
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:07 #31
Jamen, der er da ingen fejl? Virker det ikke?
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:10 #32
Ups!!! Der skal jo lige <% og %> om!!

=======================================
default.asp :

<!--#include file="menu.asp"-->
<br><br>
<%
Select Case Request.Querystring("id")
    Case 1
        <!--#include file="side1.asp"-->
    Case 2
        <!--#include file="side2.asp"-->
    Case 3
        <!--#include file="side3.asp"-->
    Case Else
        Response.Write "Siden blev ikke fundet."
End Select
%>
=======================================
menu.asp :

<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
=======================================
side1.asp, side2.asp og side3.asp :

En masse indhold (tables, pics o.a.).
=======================================
Avatar billede Slettet bruger
17. august 2003 - 11:11 #33
Nej det virker ikke.

Meddelsen er:
Side1 Side2 Side3

Select Case Request.Querystring("id") Case 1 side1.asp Case 2 side2.asp Case 3 side3.asp Case Else Response.Write "Siden blev ikke fundet." End Select

Måske er der problemer emd filnavnene?
Avatar billede Slettet bruger
17. august 2003 - 11:12 #34
Og alle filerne ligger selvfølgelig i samme mappe.
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:13 #35
Det virker når du skriver <% og %> om.

Du bør lige udskifte linien
    Case 1
med
    Case 1, ""
så vises side 1 automatisk som forside.
Avatar billede Slettet bruger
17. august 2003 - 11:14 #36
Og der er allerede når jeg klikker på "default.asp"-filen, at fejlen kommer.
Og intet sker, når jeg klikker på de 3 links.
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:15 #37
Afvikler du det på din IIS? Altså adressen http://localhost osv?
Avatar billede Slettet bruger
17. august 2003 - 11:17 #38
Ok, jeg prøver lige lidt videre.

Som sagt igen igen: Jeg kender stort set intet til ASP, så jeg skal nok hjælpes lidt igennem...  :~]
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:19 #39
Det er helt i orden. Men har du installeret IIS på din computer? Bruger du Windows XP?
ASP er et server-side sprog, som skal afvikles af en webserver (fx IIS) - det kan ikke bare vises direkte i din browser.
Avatar billede Slettet bruger
17. august 2003 - 11:22 #40
Jo, jeg har win2000 dk SP1 med IIS 5 installeret. Og den eksekverer ASP-filer helt fint. Jeg har lige testet for at være helt sikker. :~]
Avatar billede Slettet bruger
17. august 2003 - 11:28 #41
Nu har jeg prøvet en gang til, men nu er siden bare helt blank.

=======================================
default.asp :

<%
<!--#include file="menu.asp"-->

Select Case Request.Querystring("id")
    Case 1, ""
        <!--#include file="side1.asp"-->
    Case 2
        <!--#include file="side2.asp"-->
    Case 3
        <!--#include file="side3.asp"-->
    Case Else
        Response.Write "Siden blev ikke fundet."
End Select
%>
=======================================
menu.asp :

<%
<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
%>
=======================================
side1.asp, side2.asp og side3.asp :

En masse indhold (tables, pics o.a.).
=======================================
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:28 #42
Damn!! Det er nok fordi det er søndag morgen.... Dette skulle kunne gøre det:


default.asp
===========================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>Sidens titel</title>

</head>

<body>
<!--#include file="menu_inc.asp"-->

<br><br>
<%
Select Case Request.Querystring("id")
    Case 1, ""
        %>
        <!--#include file="side1_inc.asp"-->
        <%
    Case 2
        %>
        <!--#include file="side2_inc.asp"-->
        <%
    Case 3
        %>
        <!--#include file="side3_inc.asp"-->
        <%
    Case Else
        Response.Write "Siden blev ikke fundet."
End Select
%>

</body>
</html>
=================

menu_inc.asp
=======================
<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
=======================
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:29 #43
Det er bare mig der stadig sover :-) Man kan ikke lave include file inde i <% og %>. Brug mit sidste eksempel - det skal virke...
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:31 #44
Nu har jeg oven i købet afprøvet det - det virker helt som det skal. Bemærk jeg har kaldt filerne menu_inc.asp og side1_inc.asp osv.
Avatar billede Slettet bruger
17. august 2003 - 11:41 #45
Virker det hos dig? Det virker stadig ikke hos mig... *øv*

Kan du så ikke smide de fulde kildekoder herind?
Avatar billede -thomas- Nybegynder
17. august 2003 - 11:45 #46
Jo, jeg skriver dem lige om 10 minutters tid....
Avatar billede Slettet bruger
17. august 2003 - 11:46 #47
Jeg har endda både omdøbt filerne, flyttet >body> tagget (min Dreamweaver brokkede sig over dette), replace Case 1, "" med Case 1 og andre ting og sager.
Men ligemeget hjælper det.

Men godt at det virker hos dig, Thomas! Så er jeg ihvertfald på rette vej!
Avatar billede Slettet bruger
17. august 2003 - 11:47 #48
Tror at jeg bliver nødt til at kaste 30 point mere efter dig, for al det arbejde... ;~]
Avatar billede -thomas- Nybegynder
17. august 2003 - 12:14 #49
Her får alle fem filer:

default.asp
========================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Sidens titel</title>
</head>

<body>
<!--#include file="menu_inc.asp"-->
<br><br>

<%
Select Case Request.Querystring("id")
    Case 1, ""
        %>
        <!--#include file="side1_inc.asp"-->
        <%
    Case 2
        %>
        <!--#include file="side2_inc.asp"-->
        <%
    Case 3
        %>
        <!--#include file="side3_inc.asp"-->
        <%
    Case Else
        Response.Write "Siden blev ikke fundet."
End Select
%>

</body>
</html>
=======================

menu_inc.asp
======================
<a href="default.asp?id=1">Side1</a>
<a href="default.asp?id=2">Side2</a>
<a href="default.asp?id=3">Side3</a>
======================

side1_inc.asp
======================
Dette er indholdet af side 1
======================

side2_inc.asp
======================
Dette er indholdet af side 2
======================

side3_inc.asp
======================
Dette er indholdet af side 3
======================
Avatar billede -thomas- Nybegynder
17. august 2003 - 12:16 #50
Det er lige til at kopiere og sætte ind i dine filer. Tjek at navngivningen er rigtig - så skulle det virke.
Avatar billede -thomas- Nybegynder
17. august 2003 - 20:12 #51
Hej igen, virkede det???
Avatar billede Slettet bruger
17. august 2003 - 20:33 #52
Hejsa igen, Thomas.

Jo, nu virker det helt perfekt! Tak for din ihærdighed og hjælp! :~]

Synd at min ide med alt dette, ikke kunne bruges med include-filer. Altså at undgå at opdatere selve menu-filen. Så jeg må nu arbejde videre med frames istedet for.
Men jeg har lært en masse godt! Tak for det, Thomas!

Jeg vil gerne tildele dig dobbelte point (30 point mere), men hvordan gør jeg det? Opretter et nyt spørgsmål, bare med henvisning til dette, og tildeler dig 30 point? Eller hvordan?
Avatar billede -thomas- Nybegynder
17. august 2003 - 20:39 #53
Det er lige meget, bare behold dem selv :-)
Avatar billede Slettet bruger
17. august 2003 - 20:48 #54
Ok... er du sikker??? Jeg synes bestemt at du har tjent dem! Og mere til, faktisk!
Bare jeg kunne hjælpe dig med noget andet, Thomas!

Ihvertfald: Mange tak for hjælpen!
Avatar billede -thomas- Nybegynder
17. august 2003 - 21:28 #55
Ja ja, du kan sikkert bruge dem på et andet spørgsmål en dag..
Og sku' det være en anden gang. :)
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