Topic: PHP statt iframe

Weil ich schon des öfteren gefragt worden bin, wie man eleganterweise auf iframes verzichten kann, hier eine kleine Erklärung.

Im folgenden gehe ich davon aus, dass man eine Seite haben möchte, die den Inhalt wie bei einem iframe in einem Container-Element hat und natürlich verschiedene Links um auf die "Unterseiten" zu kommen. Die "Unterseiten" benenne ich einfach mal mit seite1.htm, seite2.htm usw.

Die index.php sollte in etwa so aussehen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Titel der Seite</title>
<style type="text/css">
/* hier werden die StyleSheets für das Dokument definiert */
</style>
</head>
<body>
<div class="linkliste">
<a href="index.php?id=1">Seite 1</a>
<a href="index.php?id=2">Seite 2</a>
<a href="index.php?id=3">Seite 3</a>
...
</div>
<div class="seiteninhalt">
<?php
switch ($HTTP_GET_VARS['id']) {
  case 1:
    include("seite1.htm");
    break;
  case 2:
    include("seite2.htm");
    break;
  case 3:
    include("seite3.htm");
    break;
// usw.
  default:
    include("seite1.htm");
}    
?>
</div>
</body>
</html>

Wie man sehen kann wird bei den Links lediglich die gleiche Seite mit einer neuen id geladen. Diese id wird im PHP-Teil dazu verwendet die entsprechende Datei einzufügen.
Die HTML-Dateien (seite1.htm, seite2.htm) sind eigentlich keine vollständigen HTML-Dokumente. Sie enthalten lediglich das, was in dem Container stehen soll. Also zB
seite1.htm:

<p><b>Willkommen auf meiner Seite!</b></p>
<p>Hier gibt es bisher nicht viel zu sehen. ;)</p>

Mittels der Klassen "linkliste" und "seiteninhalt" lassen sich die beiden div-Container problemlos über CSS anpassen. Für "seiteninhalt" empfiehlt sich je nach Größe des Inhalts und des Containers auf jeden Fall "overflow:auto;".

Ich hoffe, dass die Erklärung ausführlich genug ist und euch etwas nützt. smile

It is like the number zero… empty, yet holding infinite potential within itself.
- Igor, Persona 4