Als Alternativen zu Frames werden oft Tabellen genannt, welche ich persönlich für ungeeignet halte, da diese eher weniger für den strukturellen Aufbau einer Seite, sondern mehr zur Darstellung tabellarischem Inhalts gedacht sind – wie der Name „Tabelle“ ja eigentlich schon verrät.

Dieses Beispiel zeigt nun, wie man Frames durch DIV-Container ersetzen kann.

Zunächst wird eine grundlegende Aufteilung gebraucht – klassisches Beispiel – Navigation und Content, also Inhalt.

1
2
<div id="navigation"></div>
<div id="content"></div>

Damit ist die Seite „unterteilt“ in Navigation und Content.

Genau wie bei Frames werden nun die Daten eingebunden, nur nicht mit src=“…“ sondern mit include();.

Im Falle der Navigation sieht das noch sehr übersichtlich aus, denn in diesen Container schreibt man nun einfach Folgenden Inhalt.

1
2
3
<?php
include('navigation.php');
?>

Die Datei „navigation.php“ kann dann beispielsweise so aussehen:

1
2
3
4
5
6
7
8
9
<?php
echo <<<NAVIGATION
<ul>
    <li><a href="./?home">Home</a></li>
    <li><a href="./menue_1">Menue 1</a></li>
    <li><a href="./menue_2">Menue 2</a></li>
</ul>
NAVIGATION
;
?>

Das Menü selbst wird hier ganz klassisch durch eine Liste erzeugt, welche sich nach Belieben mittels CSS formatieren lässt.

Die Links (<a href=“./?home„>Home</a>) werden von PHP in der superglobalen Variable $_SERVER gespeichert, nachdem man sie aufgerufen hat und können so auch abgefragt werden. Um genau zu sein, der Inhalt des Links ist in $_SERVER[‚QUERY_STRING‘] zu finden.

Kommen wir nun zum Content-Bereich.
Um hier zu verhindern, das es eine Fehlermeldung durch PHP gibt – wenn ein Link aufgerufen wird, zu dem noch keine Datei existiert – fängt man so etwas üblicherweise ab. Dies geschieht mittels einer simplen if()-Abfrage.

Der Content-DIV könnte dann also wie folgt aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
/**
 * Hier legen wir fest, welche Datei geladen werden soll
 * Dies je nach angewähltem Link.
 *
 * Beispiel:
 * <a href="./?home">Home erwartet die "home.php"
 */

$datei = $_SERVER['QUERY_STRING'] . '.php';

/**
 * Nun folgt die Abfrage, ob die Datei auch vorhanden ist
 * Ist dies der Fall, wird sie geladen,
 * ansonsten wird die "home.php" geladen.
 */

if (file_exists($datei)) {
    include($datei);
} else {
    include('home.php');
}
?>

Hinweis:
Ich bin mir durchaus bewusst, das dies nur eine von vielen Möglichkeiten ist, so etwas zu realisieren. Dieses Beispiel dient nur zur Verdeutlichung der Möglichkeit Frames zu ersetzen.

Artikel / Seite weiterempfehlen

Schreibe einen Kommentar

Ihre Email-Adresse wird nicht veröffentlicht. Pflichtfelder sind durch * markiert.

Sie können folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>