Schrift
[thread]12327[/thread]

[PHP] Frage zu Webseiten-Navigation

Leser: 1


<< >> 3 Einträge, 1 Seite
tecker
 2008-08-09 20:28
#113271 #113271
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

zur Abwechslung habe ich mal eine Frage in PHP.
Ich würde gern die Navigation einer Webseite so gestalten, dass die aktuell ausgewählte Seite im Menü hervorgehoben wird. Viele machen es ja über class="current" was sie in de <a> Tag einbauen. Da ich mein komplettes Menü über include() einbinde fällt das schonmal aus. Aber es gibt ja die Möglichkeit über die aktuelle URL zu schauen in welchem Pfad man sich befindet und anhand dessen die entsprechende Klasse zuzuweisen.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<? $url = array("menu1"=>"Menu1", "menu2"=>"Menu2", "menu3"=>"Menu3";
?>

<div id="navigation">
<table align="left">
<tr>

<? while(list($key, $val) = each($url))

{
echo '<td width="80" height="15"><a href="../'.$key.'"';


if (strstr(basename($_SERVER['PHP_SELF']),$key))
{
echo ' class="current"';
}

else
{
echo ' class="normal"';
}

echo '><img src="../images/buttons/'.$key.'.bmp" style="border:1px solid #ffffff;"></a></td>'."\n";
}
?>
</tr></table></div>



Leider erscheint bei mir immer die Klasse "normal" in allen <a> Tags, d.h. die if - Bedinung scheint nicht zu funktionieren. Die $key Werte sind aber eigentlich richtig, da ich diese ebenfalls für die *.bmp Namen verwende die auch gefunden werden.

Hat man mein Problem verstanden und kann mir evtl. helfen? :)

LG
#Kein Kommentar
 2008-08-10 14:30
#113287 #113287
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
lass dir doch mal basename($_SERVER['PHP_SELF']) mit echo ausgeben, steht darin was du erwartet hast?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
tecker
 2008-08-12 20:55
#113433 #113433
User since
2008-02-26
77 Artikel
BenutzerIn
[Homepage] [default_avatar]
Naja das hat nicht so ganz geklappt mit

if (strstr(basename($_SERVER['PHP_SELF']),$key))

Ich habe es durch if ($key != $var) ersetzt und auf jede Seite die Variable in den Header geschrieben, wie $var = "Menu1";
Die lasse ich dann in einer foreach überprüfen und weise entsprechend eine CSS klasse zu. klappt zumindest und mehr wollte ich ja nicht :)
<< >> 3 Einträge, 1 Seite



View all threads created 2008-08-09 20:28.