Ik heb een lay-out met divjes.
Aan de linkerkant is het menu geinclude waarbij ik de betreffende tekst voor de pagina ophaal.

Nu wil ik graag de inhoud van de paginas op de plek hebben staan waar thans Content staat en dit is : div id="midden".

Hoe pak ik dit aan?

PS met frames dan werk je met targets die je vervolgens een naam geeft welke je terug laat komen in de link waar je de desbetreffende pagina opvraagt.
Voorbeeld

lissy schreef op 28.01.2006 12:41
Ik doe het nu zo dat ik daar waar Content staat zet ik op de betreffende pagina de query neer waar de inhoud van de pagina wordt aangesproken.

Wanneer ik fout ga met mijn gedachtengoed dan hoor ik het graag :-)


Dat is precies zoals ik het ook doe.
OK dan Jan dan zit ik niet helemaal fout.
Nu nog een manier vinden om dus van 1 lay-out daarin alle content te kunnen laten.

Dit heb ik hier (dankzij Robert gevonden):

<?php
// foutraportage
error_reporting(E_ALL);

/* Oh en Lissy, als je herladen van de pagina niet erg vindt,
kan je zo'n menusysteem gebruiken als waarvan er ook al meerdere staan.
(1 layout voor meerdere pagina's, onder het kopje overig).

Je klikt op een link.. je krijgt bijvoorbeeld: ?page=1 achter de url,
en je include de, bij key 1 horende, pagina.
Hierbij moet je wel goed op beveiliging letten.
Verder kan je ook in 1 keer alles laden, maar bepaalde divs verbergen,
en met javascript weer zichtbaar maken en de ander verbergen. (of is dat AJAX? :S)

Je kan natuurlijk de database nog aanpassen maar zo is hoe ik het gedaan heb.
Zowiezo heb je een titel nodig voor elke pagina en het weergeven waar elke pagina staat is hierbij
onmiddelijk gebeurt vandaar deze handigheid. Hopelijk hebben jullie er wat aan.

CREATE TABLE page (
id int(11) NOT NULL auto_increment,
paginatitel varchar(50) NOT NULL default '',
inc varchar(80) NOT NULL default '',
PRIMARY KEY (id),
UNIQUE KEY id (id)
) TYPE=MyISAM;

Code:
Dit script moet staan als eerste boven alle html.
*/

// maak db connectie
include ("../include/db.php");

//$host = "localhost";
//$user = "gebruiker";
//$pass = "pass";
//$dbdb = "db";

//if (!@mysql_select_db($db, @mysql_connect($host, $user, $pass)))
//{
// echo "Er kan geen database connectie gemaakt worden..<p>";
// echo "Probeer het na enkele minuten opnieuw. Wil het dan nog niet, neem dan contact met mij op.";
//}

//Hier gaan we kijken welk id er is meegegeven in de url
//door de get functie en laten we meteen alles selecteren uit de Db dat met het id gelinkt is.

$sql = "SELECT * FROM page WHERE id=$_GET['id']";
$res = mysql_query($sql) or trigger_error (mysql_error ());

if ($res)
{
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
$paginatitel = $row['paginatitel'];
$inc = $row['inc'] ;
unset($sql);
}
}
// Als er geen Id aanwezig is wat gebeurt bij index.php dan geeft ie de gewone home pagina weer.
else
{
$paginatitel = "Home" ;
$inc = "paginas/home.php";
}
}
// Indien je nog een andere functie op deze manier zou gaan gebruiken
//bv index.php?show=2 dan is er geen ID aanwezig en zou hij dus de homepagina
//gaan weergeven maar dat is de bedoeling niet aangezien je show wil laten zien, vandaar dit even.

if ($_GET['id'] <= "0" AND $_GET['show'] <= "0" )
{
$paginatitel = "Home" ;
$inc = ("paginas/home.php");
}
else
{
// niet gebruikelijk een lege if maar het moest wel dus verbetering zijn altijd welkom voor het onderstaande.
if ($_GET['show'] >= "0")
{ }
}
Meestal heb ik in mijn contentdiv een script dat checkt of er toegestande GET waarde gezet is. Zo ja, de pagina uit de GET waarde tonen. Zo nee, homepage tonen.

AJAX lijkt me voor iets belangrijks als je sitenavigatie niet de aangewezen oplossing vanwege de afhankelijkheid van JavaScript.
Ik ben een starter dus vraag dan heeeel lief aan je heb je een voorbeeld van hoe je dit doet?
ik denk dat Jan zoiets bedoelt
<? if(file_exists($_SERVER['DOCUMENT_ROOT']."/".$_GET['url']))
{
if(isset($_GET['url']) && !empty($_GET['url']) && $_GET['url']!='index.php')
{
include $_GET['url'];
}
} ?>
@ Lissy & Klaasjan: ja zoiets bijvoorbeeld.

Als ik weet dat het geen grote site wordt, laten we zeggen minder dan 10 pagina's, doe ik het ook wel eens zo:

header, left, right en footer elk in een eigen php bestand.
In elke pagina op de goede plek includen.
dank jullie wel ik ga hiermee aan de slag :-)

Reageren