Aktive Seite wird markiert !?

Aktive Seite wird markiert !?| Datum: 12.10.2009 - 18:10 | Author: PCFreund

Hallo
Also ich hab ein kleines Problem:
Ich möchte wenn ich auf z.B. den MenüLink "Home" klick und ich dorthin geleitet werde dass der MenüPunkt so aussieht als wär er gedrückt, das mit dem gedrückt hab ich ja schon geschafft, aber irgendwas funktioniert da nicht...
Mein aktuelles:
index.php:

Code



<div id="menulinks">
<?php
$menuloc = $_GET['loc'];
if($menuloc == "page")
{
?>
<div class="thispage">
<a href="$loc=page">Home</a>
</div>
<?php
}
else
{
?>
<a href="?loc=page">Home</a>
<?php
}
?>



die abfrage für die get variable $loc soll bewirken dass derjenige weiß wo er is ...
wenn z.B. man auf home ist, wird die variable mit "page" gefüllt, und dann soll man ihn so sehen als wär er geklickt (active)

Code



#menulinks {

width:940px;
height:47px;

background-image:url(images/menulinks.png);

clear:both;

padding-left:20px;
}



#menulinks a {
padding-left:20px;
padding-right:20px;

padding-top:12px;

padding-bottom:1px;
height:27px;
display:block;
color:#FFFFFF;

background-image:url(images/cellpic3.gif);
background-repeat: repeat-x;
background-position:top center;
text-decoration:none;

float:left;

font-size:14px;
font-weight:bold;

}



#menulinks a:hover {
padding-left:25px;
padding-right:25px;
background-image:url(images/menuhover.gif);
text-decoration:none;

}

#menulinks a:active {
background-image:url(images/cellpic1.gif);
text-decoration:none;
}

#menulinks a .thispage {
padding-left:25px;
padding-right:25px;
background-image:url(images/menuhover.gif);
text-decoration:none;
}



das letzte mit thispage funktioniert aber net ganz ...
wenn man auf home klickt ist da nichts also es ist wie ein normaler link, siehe a
mit dem id und dem class hab ich net ganz kapiert, wie geht das !?

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 19:10 | Author: Haruspex

Also soweit ich weiß geht das per CSS gar nicht.
Bei Feorar haben wir ne Funktion gebastelt, an die man den Text und das Linkziel übergibt. Wenn dann die aktuelle Seite dem Link entspricht wird eine bestimmte CSS-Class verwendet. Wenn ungleich natürlich ne andere ;)

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 19:10 | Author: PCFreund

ja so will ichs auch ... also wenn die phpvariable get ?loc= den text "home" enthält, wird da ein eigenes class bzw. eine eigene id verwendet aber ich weiß net wie man dat macht
eine eigene class bzw. id was is da eig. der unterschied !?

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 19:10 | Author: Haruspex

mach doch einfach ne Funktion, die ich erläutert hab.

Code


function link($title,$target) {
if ( $target == $_GET[loc] ) {
$start='<div class="active">';
$end='</div>';
}
$link='<a href="'.$target.'">'.$title.'</a>';
return $start . $link . $end;
}




Entschuldigung fürs mangelnde Einrücken, aber das Forum mag die Tab-Taste nicht.

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 19:10 | Author: PCFreund

und was schreib ich jetzt in die style.css !?
sorry bin ein css laie

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 19:10 | Author: Haruspex

Naja in die Klasse "active" packst du einfach das rein, wie der Link aussehen soll, wenn er aktiv ist :D
wasweißich... ne andre Farbe, oder Fett oder verschoben...

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 19:10 | Author: PCFreund

# oder . davor und wie !?
bitte erklär mir ... also ich möchte es sowie hier:

Code


#menulinks a .thispage {
padding-left:25px;
padding-right:25px;
background-image:url(images/menuhover.gif);
text-decoration:none;
}



mit . anfangen oder mit # weil dieses class und id bringt mich durcheinander ^^

Re: Aktive Seite wird markiert !?| Datum: 12.10.2009 - 20:10 | Author: Haruspex

So, hab noch nen Fehler behoben.
Die CSS-Datei

Code


div.active {
padding-left:25px;
padding-right:25px;
background-image:url(images/menuhover.gif);
text-decoration:none;
}




die Funktion:

Code


function mlink($title,$target) {
if ( $target == $_GET[loc] ) {
$start='<div class="active">';
$end='</div>';
}
$href='<a href="?loc='.$target.'">'.$title.'</a>';
return $start . $href . $end;
}




um jetzt deinen gewünschten Link auszugeben müsste man folgendes machen

Code


echo mlink('Home','home');



Re: Aktive Seite wird markiert !?| Datum: 13.10.2009 - 14:10 | Author: Der_Admin

des gehört eher in PHP und SQL.
***SCHIEB***
PS:
es gehört so:

Code


function mlink($title,$target) {
if ( $target == $_GET['loc'] ) {
$start='<div class="active">';
$end='</div>';
}
$href='<a href="?loc='.$target.'">'.$title.'</a>';
return $start . $href . $end;
}



Sonst gibt PHP eine Notice aus!

Re: Aktive Seite wird markiert !?| Datum: 13.10.2009 - 17:10 | Author: PCFreund

er/ich hats/habs doch eh geschafft
es ist nur dass der link NICHT die hintergrundfarbe wechselt wenn man da ist ... es ist ein normaler link, ich machs jetz ganz einfach so ohne dem, so nun hat sich das problem gelöst ...