Hallo
Der angeklickte Link soll so aussehen:
dl.menu dd a:active {background-color:#dddddd;}
Dir ist offensichtlich nicht klar, wie a:active funktioniert. Diese Pseudoklasse kommt *in dem Moment* zum Zug, wenn du mit der Maus einen Link anklickst, und zwar *genau* und *nur* in *diesem Moment*.
navi.php
<?php
if(intval($_GET["x"]) == 3)
{
echo '<dd>
<a href="navi31.php?x=3">navi31</a>
<a href="navi32.php?x=3">navi32</a>
<a href="navi33.php?x=3">navi33</a>
</dd>';
}
?>
Ob man die Links, einen an dem anderen, direkt hintereinandersetzen sollte, lasse ich mal dahingestellt. Allerdings würdest du, wie ich schon schrieb, dem ganzen Dilemma aus dem Weg gehen, wenn du das aktuell zu ladende Dokument identifizieren könntest.
Gehen wir mal davon aus, dass du alle naviXX.php (XX für beliebige Zahl) kennst. Du könntest an dieser Stelle mit einem Array all dieser Dateien arbeiten. Um den Linktext gleich mitzunehmen, bauen wir uns ein assoziatives Array mit beiden Informationen.
~~~php
<?php
$navi = array(
array("navi31.php"=>"navi31"),
array("navi32.php"=>"navi32"),
array("navi33.php"=>"navi33")
);
?>
Wenn es denn zur Ausgabe kommt, kann man dieses Array durchgehen und die aktuell zu ladende Datei ermitteln. Die Prüfung auf $_GET["x"]
lasse ich mal außen vor und stecke die Navigation (innerhalb der von dir verwendeten Definitionsliste) in eine ungeordnete Liste. Weiterhin ist davon auszugehen, dass der Name der aktuell zu ladenden Datei in der Variable $aktuell
gespeichert ist. Praktisch läuft das ein wenig anders, da im Zweifelsfall ein Dateiname in mehreren Verzeichnissen vorkommen kann. Deshalb verwendet man eher eine <http://de.selfhtml.org/html/allgemein/referenzieren.htm#absolut@title=lokal absolute Pfadangabe>.
<?php
echo '<ul>';
foreach ($navi as $key=>$value) {
echo ' <li>';
if ($key==$aktuell) {
// Der Menüpunkt betrifft das aktuelle Dokument.
// Der Menüpunkt wird nicht verlinkt.
echo '<span id="aktiv">'.$value.'</span>';
} else {
// Der Menüpunkt betrifft ein anderes Dokument.
// Der Menüpunkt wird verlinkt.
echo '<a href="'.$key.'?x=3">'.$value.'</a>';
}
echo '</li>';
}
echo '</ul>';
?>
Müsste ich nun noch eine ID weitergeben? z.B.
"id="aktiv"";
Nein, nicht weitergeben, sondern im neu zu ladenden Dokument vergeben.
Tschö, Auge
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
Veranstaltungsdatenbank Vdb 0.3