Skip to forum content

missing Forum

out of the blue edition

You are not logged in. Please login or register.


Post new reply

missing Forum → Web-Forum → PHP statt iframe → Post new reply

Post new reply

Compose and post your new reply

You may use: BBCode Images Smilies

All fields with bold label must be completed before the form is submitted.

Required information for guests


Required information

Topic review (newest first)

1

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

missing Forum → Web-Forum → PHP statt iframe → Post new reply