techni. Frage wegen Aufbau

fredolin

Erfahrenes Mitglied
Hey PHP Gemeinde,

ich hab nun kein richtiges Problem, sondern echer eine technische Frage. Undzwar geht es darum, das ich in meiner ToipNavigation auf der Webseite http://business.webslay.de über eine DB erstelle. Also die Menüpunktet lese ich aus einer DB heraus.

Nun möchte ich aber, wenn man auf einem Menüpunkt klickt, das dieser dann Fett hervor gehoben wird. Ich weiss das ich dies mit CSS machen kann, so eigene CSS Tag. Doch mein Problem liegt eher darin, wie ich meine Navigation auf baue. Also ich meiner wie ich den Aufruf über den PHP COde mache.
Hier mal mein PHP Code für die TopNavi

PHP:
function topNavi() {
	$dbhandle = opendb();
	$result = mysql_query("SELECT * from " . DBTEXT . " WHERE _show = 'y' AND kategorie = 'hauptseite' ORDER BY ID ASC") or die("MY-SQL-ERROR-Typing => " . mysql_errno() . " : " . mysql_error());
	while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
		echo '<li><a href="?page='.$row['bereich'].'" alt="'.$row['seotag'].'" title="'.$row['headline'].'" name="'.$row['seotext'].'">'.$row['headline'].'</a></li>';
	} 
}
So wie ich diesen Code auf gebaut habe, kann ich nirgendwo ein anderes CSS Tag einsetzen. Könnt IHr mir da weiter helfen, wie ich da das Problem beheben kann?

Viele Grüsse
Fredolin
 
Hi

Bin mir nicht sicher, ob ich deine Frage richtig verstehe:
im generierten HTML hast du ein paar Einträge der Form
HTML:
<li><a href="bla" alt="blub" title="titel" name="xyz">Text</a></li>
von diesem Code.
Und du willst jetzt CSS-mäßiges style="..." oder class="..." da drin haben
HTML:
<li class="navi_oben"><a href="bla" alt="blub" title="titel" name="xyz">Text</a></li>
und kennst dich aber nicht aus, wie das in den PHP-Code gehört?

Solange im dazukommenden Zeug keine Anführungszeichen oder \ sind kannst du es einfach beim
Code:
echo '<li><a href
beim li dazuschreiben.
Doppelte "..." gehn in dem Fall auch problemlos, einfache '...' müssen \'...\' sein
und statt \ gehört \\ hin.

Im Detail alles hier:
http://php.net/manual/de/language.types.string.php
 
Hallo sheel,

also wie ich es machen muss bzw. wie es mit css das weiss ich schon. Aber da mein Aufruf in dem PHP Code so aussieht
PHP:
hab hier nun mal alles wie DB aufruf und so weg gelassen
...
 while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        echo '<li><a href="?page='.$row['bereich'].'" alt="'.$row['seotag'].'" title="'.$row['headline'].'" name="'.$row['seotext'].'">'.$row['headline'].'</a></li>';
    }  
...
weiss ich nun nicht,wie ich den Zustand nach dem Klick auf den "erzeugten" Link umschreiben kann. Ich habe es schon mit einer Schleife im Sinne
PHP:
if($row['bereich'] == 's. topNavi'){
echo 'Zustand nach dem Klick';
} else {
echo 'Zustand vor dem Klick';
}
Aber da bin ich nicht mehr dynamisch, da ich
1.) in einer while-Schleife alle Variablen befülle
2.) den Vergleichswert schon vorher fest eintragen muss

Gibt es eine Funktion, ob auch über JS dann es so zu schreiben, das ich nach dem Klick auf den Link, dann diesen "Fett" markiere? Kann mir da einer helfen?

Ich wünsche allen ein tolles geschenkereiches Weihnachtsfest und einen gesunden erfolgreichen Rutsch ins 2014.
VLG Fredolin
 
Hallo an alle,

so ich habe es nun versucht mit jQuery den angeklickten Link dann mit einer neuen CSS.Classe zu belegen. Wenn ich den Link anklicke, dann wird auch die neue Classe angezeigt. Nach dem die Seite geladen ist, wird die neue angezeigte Classe nicht geladen.

So hier mal mein jQuery-Code
Javascript:
// Enthält alle Listenelemente erster Ebene
var $items = $('.navi > li'); 
//Click handler für alle Links innerhalb der Listenelemente erster Ebene
$items.find('> a').click(function() {
     // Hier weise ich dem angeklickten Listenelement die neue Klasse zu
	$(this).addClass("linkactiv");

});
Wie bekomme ich es nun hin, das wenn die Seite geladen ist, dieses angeklickte element die neue Klasse behält? Hilfe wer weiß da Rat**** Macht mir eine Weihnachtsgeschenk.. :)

Allen ein frohes gesundes und besinnliches Weihnachtsfest..

VLG Fredolin
 
Zuletzt bearbeitet von einem Moderator:
Hallo sheel,

ich habe es hinbekommen und es war so einfach.. ob es richtig ist und sauber programmiert ist, das weiss ich nicht.

Hier mein Weg
PHP:
db con und so weggelassen..
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
		if($_GET['page'] == $row['bereich']) {
			echo '<li class="activ">'.$row['headline'].'</li>';
		} else {
			echo '<li><a href="?page='.$row['bereich'].'" alt="'.utf8_encode($row['seotag']).'" title="'.$row['headline'].'" name="'.utf8_encode($row['seotext']).'">'.$row['headline'].'</a></li>';
		}
	}

Aber es tut genau das was ich wollte. Anschauen könnt Ihr das auf http://business.webslay.de. Das ist in der TopNavigation zu sehen.

Schöne Weihnachtsgrüße an alle und eiun erfolgreiches gesundes und friedvollen Rutsch ins 2014

VLG Fredolin
 

Neue Beiträge

Zurück