Gå til innhold

Samme meny på alle sidene


Anbefalte innlegg

Jeg driver å mekker en ny side og lurte på hvordan jeg skal få menyen til å synes på alle sider.

Må ha en metode slik at jeg kan forandre en fil som istedetfor å forandre menyen på alle sider.

Tenkte layouten som noe lignende Hw.no sin, med en meny/banner på toppen og en på hver side.

Endret av Zyrex_
Lenke til kommentar
Videoannonse
Annonse

Du må strengt tatt bare lage en side som dette:

<?PHP
$page = $_GET['page'];
if (!$page) {
$page = main;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Side til meg</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="stilark.css" type="text/css">
</head>
<body>
<div id="header"></div>
<div id="meny">
<ul>
<li><a href="index.php?page=main">Main</a></li>
<li><a href="index.php?page=meg">meg</a></li>
</div>
<div id="main"><?php include("$page.php"); ?> </div>
</body>
</html>

 

 

 

Der har du hele index.php

Lenke til kommentar

tror kanskje jeg skjønner det nå. Iallefall en måte som fungerer.

men når jeg først er igang, et vanlig html dokument med tabeller for menyene. men da må jeg lage det for hver side, slik at jeg er like langt hvis jeg bytter layout, altså må lage alle sidene på nytt.

her er koden jeg brukte. litt rotete men.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<TITLE></TITLE>
</HEAD>
<BODY LANG="nn-NO" DIR="LTR">
<TABLE WIDTH=100% BORDER=0 CELLPADDING=4 CELLSPACING=0 STYLE="page-break-before: always; page-break-inside: avoid">
<COL WIDTH=85*>
<COL WIDTH=85*>
<COL WIDTH=85*>
<THEAD>
 <TR>
<?php
include ("banner.html"); 
?>
 	<TH COLSPAN=3 WIDTH=100% VALIGN=TOP>
   <P><BR>
   </P>
 	</TH>
 </TR>
</THEAD>
<TBODY>
 <TR VALIGN=TOP>
 	<TD WIDTH=20%>
   <P>
php
include ("meny.html"); 
?>
   </P>
 	</TD>
 	<TD WIDTH=60%>
   <P>
bvjsfvbfjlb
<br>	gfdgdfnikgbnltjdgbkjf
<br>	gfrhlgnteldn
   </P>
 	</TD>
 	<TD WIDTH=20%>
   <P>
<?php
include ("meny.html"); 
?><BR>
   </P>
 	</TD>
 </TR>
</TBODY>
</TABLE>
<P><BR><BR>
</P>
</BODY>
</HTML>

Lenke til kommentar

Hele cluet med design som er lett å endre er å droppe tabellene helt, og heller satse på div med css.

 

Da lager du noe så enkelt som dette:

<html>
 <head>
   <title>tittel</<title>
 <link rel="stylesheet" href="STILARK.css" media="screen" type="text/css" title="default"/>
 </head>
 <body>

   <div class="header"> blablabla </div>
   <div class="meny"> blablabla </div>
   <div class="innhold"> blablabla </div>
 </body>
</html>

Så kan du bruke css stilarket til å flytte ting rundt på.

 

Så til saken:

Du vil ikke ha menyen sånn at du må redigere hver eneste side for å oppdatere menyen - forståelig. Du har da i realiteten et alternativ. Det er å legge menyen i et eget dokument og finne en måte å inkludere dette i siden din på.

Den beste teknikken for dette er php. Da behandles siden din på serveren, og hver gang noen henter den vil php motoren lime inn koden i det eksterne menydokumentet i siden som hentes:

Siden som hentes

<div class="meny">
 <?php include(meny.html) ?>
</div>

meny.html (hvor menyen ligger, duh..)

<a href="URL1">link1</a>
<a href="URL2">link2</a>
<a href="URL3">link3</a>

resultatet brukeren mottar

<div class="meny">
 <a href="URL1">link1</a>
 <a href="URL2">link2</a>
 <a href="URL3">link3</a>
</div>

Som du ser er <?php include(meny.html) ?> byttet ut av php motoren med innholdet i meny.html

Dette krever at serveren støtter php

 

Det andre alternativet er iframe. Mange grøsser når de leser dette, men det virker. Betingelsen her er at nettleseren skjønner javascript, forid man må jobbe litt rundt et par sperrer for at det skal virke...

 

Siden som hentes

<div class="meny">
 <iframe src="meny.html">
</div>

 

meny.html

<html>
<head>
<title>meny</title>
</head>
<body>
<a href="URL1">link1</a>
<a href="URL2">link2</a>
<a href="URL3">link3</a>
</body>
</html>

 

Mens man i php kombinerer de to dokumentene på serveren og sender en fiks ferdig side til brukeren må man i dette tilfellet laste ned den første side, så ser nettleseren at her er det en iframe, så må den laste ned denne og. Du har da i praksis to websider i nettleseren din. Den siden du hentet, og menysiden som er en del av den andre.

Problemet ligger da i at linker i iframen (menyen din) vil endre iframen og ikke hele dokumentet. Altså, klikker du på www.vg.no vil vg.no åpne seg bare der hvor menyen var før, og ikke i hele vinduet. Dette kan omgås meg javascript, noe jeg ikke orker gå inn på her. Minuset er at ikke alle støtter javscript (men det er ikke mange). Et annet minus er at med iframe må denne ha en bestemt størrelse, og denne må endres hvis du legger til meg i menyen enn det er plass til. Litt mas, men det virker

Lenke til kommentar

Takk

Så kan du bruke css stilarket til å flytte ting rundt på.

hvordan gjør jeg det? slik at jeg får 3 php menyer (topp, høyre og venstre)

Og hvordan skal jeg få det til å fungere sammen med hver enkelt side, er det noen mulighet for å få den til å gjøre alt selx slik at hvis du går inn på en link med bare tekst så lager den en side med menyene på og skriften i midten.

Eller noen som har noen bedre forslag.

Er litt ny i PHP og css

Lenke til kommentar

Blir litt mange svar på egen post men.

Har fått til css og html nå.

 

 

Nå trenger jeg bare en måte få menyen til å sette inn et vanlig html dokument når jeg trykker på den.

eks: når du trykker på "velkommen" så settes fila "velkommen.html" automatisk inn. Velkommen.html skal være en helt standar Html kode. hvis dere skjønner hva jeg mener og dette er mulig å la seg gjøre.

 

Dette er index sida.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head><title>e5150.org</title>

<style type="text/css">
@import "all.css"; 


</style>
</head><body>
<div id="banner">
<?php include(banner.html) ?>
</div>
<div id="leftcontent"></div>
<div id="centercontent">
 <?php include(center.html) ?>
</div>
<?php include(left.html) ?>

<div id="rightcontent">
<?php include(right.html) ?>
</div>

</body>
</html>

Endret av Zyrex_
Lenke til kommentar

Nå er jeg ganske n00b på PHP, og dette blir litt feil forum, men here goes:

 

Brukeren skriver følgende URL:

www.dittdomene.com/index.php?page=ballesvie

 

Øverst på siden har du:

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

if(! $page) {
 $page = "main";
}
?>

cluet her er at du henter en parameter fra URLen brukere taster inn.

$_GET['page']; er en metode som returnerer verdien til page (ballesvie)

Dette lagres variablen $page. I selve koden for main-området bruker vi:

<?php include("$page.html"); ?>

som rett og slett er en include med verdien_av_$pagge + .html

 

if-setningen i det øverste scriptet sjekker om det faktisk blir oppgitt noe $page, hvis ikke settes $page til main sånn at ved www.dittdomene.com/index.php blir main lastet

 

Legg merke til at jeg ikke har tatt for meg sjekking av at siden det refereres til virkelig finnes, og en allowed liste over verdier til $page. Dette var bare ment som en liten innføring. Ta det vidre i php delen ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...