Man merkt schon an der Überschrift, es ist schwierig in einem Satz zu beschreiben, um was es hier eigentlich geht. Ich will es mal anders ausdrücken. Ich will mit einem Link ein Frameset öffnen und außerdem in dem Link bestimmen, welche Seite sich in der zweiten Spalte des Framesets öffnen soll.
Gerade wenn man Framesets hat, die ineinander verschachtelt sind, braucht man manchmal solche Lösungen. Der primitivste Weg wäre für jede Seite auch noch ein neues Frameset zu definieren. Das ist zwar einfach, aber durch die vielen Seiten, die entstehen, wird es schnell unübersichtlich.
Die Seite, die das Frameset definiert ist eine PHP Seite. Sie empfängt per URL Parameter den Namen der Seite, die sich in der zweiten Spalte des Framesets öffnen soll. Der Link verweist auf das Frameset und der Name der Seite wird mit einer Variablen angehängt. Siehe dazu Tipp Kommunikation HTML PHP . Als Name der Seite ist hier die Seitenbezeichnung ohne die Endung .htm gemeint.
Link | Quellcode |
---|---|
Home | <a href="frameset.php?seite=home" target="_self">Home</a> |
Kontakt | <a href="frameset.php?seite=kontakt" target="_self">Kontakt</a> |
Profil | <a href="frameset.php?seite=profil" target="_self">Profil</a> |
Irgendwo am Anfang der Seite wird die Variable namens "seite" empfangen.
<html><head><title>Seitentitel</title>
<?php
$seite = $_GET["seite"];
?>
Zwischen Head und Body wird das Frameset definiert. In der zweiten Spalte wird der Name der Seite mittels PHP echo eingefügt.
</head>
<frameset cols="80,*" frameborder="no" border="0" framespacing="0">
<frame src="nav.htm" name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame" title="leftFrame" />
<frame src="<?php echo $seite ?>.htm" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
<noframes><body></body></noframes></html>