Aktiven Link hervorheben

Hi, Firefox stellt auch nicht richtig dar.. die Fehlerkonsole zeigt ein paar Warnungen an, die aber nicht damit zusammenhängen..
 
Ah - sehr cool, danke! Wie es im Skript auch angegeben ist, wird erst hervorgehoben, wenn es angeklickt ist. Wenn man die Seite aufruft, soll aber schon der erste Name hervorgehoben sein, da diese quasi schon aktiv ist... Momentan wird dieser ganz normal als Link angezeigt? Habt ihr da noch nen Tipp!?
 
Hi,

meinst Du so?

PHP:
<?php
$className = 'filmmarkierer';
while($row = mysql_fetch_array($result)) {
   ...
   echo "<span class=\"" . $className . "\">";
   ...
   $className = 'artistlink';
}		
?>

LG
 
Wenn ich das so einbaue, ist jeder Link hervorgehoben? Oder habe ich da was falsch eingebaut?
 
Hi,

also, wenn "filmmarkierer" Deine Klasse für hervorgehobene Links ist und "artistlink" die normale, dann müsstest Du irgendwas falsch gemacht haben. Die Idee ist einfach, zu Beginn den Klassennamen auf "filmmarkierer" zu setzen. Im ersten Durchlauf der Schleife wird also "filmmarkierer" ausgegeben. Dann wird vor Schleifenende der Klassenname auf "artistlink" gesetzt, so dass bei den restlichen Schleifendurchläufen "artistlink" ausgegeben wird.
Hast Du vielleicht eine Klammer falsch gesetzt?

LG
 
Hey.. kann vermutlich sein.. Hier mal der Code:

PHP:
mysql_connect("$dbhost","$dbuser","$dbpass");
mysql_select_db("$dbtable");
$result = mysql_query("SELECT * FROM files WHERE id_kuenstler = ".$_GET["id"]."");
 echo "<table id=\"playlist\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
$className = 'filmmarkierer'; 
while($row = mysql_fetch_array($result))
{

	if (trim($row['bild_pfad']) != "")
		echo "<span class=\"" . $className . "\" onclick=\"for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].className = 'artistlink';}this.className= 'filmmarkierer';image_content('".$row['bild_pfad']."','".$row['bild']."',1);\" >".$row['bild']."</span><br>";
	else if (trim($row['bild_pfad']) == "" AND trim($row['swf_pfad']) == "")
		echo "<span>".$row['bild']."</span><br>";
	else
		echo "<span class=\"" . $className . "\" onclick=\"for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].className = 'artistlink';}this.className= 'filmmarkierer';image_content('".$row['swf_pfad']."','".$row['swf']."',2);\" >".$row['swf']."</span><br>";

}
echo "</table>";
 
Hi,

wo ist denn da die Anweisung

PHP:
$className = 'artistlink';

geblieben? So ist das natürlich kein Wunder. Die musst Du direkt vor die schließende while-Klammer setzen.

LG
 
Hoppala... glatt vergessen! Ja jetzt klappts, dank dir! Aber wenn ich jetzt auf den "ersten" hervorgehobenen Link klicke (aus Spass an der Freud), dann werden auf einmal die anderen <span> Attribute auch zum Link formatiert, obwohl diese gar keine Links sein sollte.. Es wird ja im Skript unterschieden, ob ein Pfad hingelegt ist mit

else if (trim($row['bild_pfad']) == "" AND trim($row['swf_pfad']) == "")
echo "<span>".$row['bild']."</span><br>"
 
Hi,

ja, aber in Deiner onclick-Funktion unterscheidest Du das leider nicht. Das dürfte vorher auch schon so gewesen sein. Du weist ja ausnahmslos allen <span>s erstmal 'artistlink' als Klasse zu. Lager das mal in eine Funktion aus und pack das in eine Abfrage, ob überhaupt eine Klasse gesetzt war.

LG
 

Neue Beiträge

Zurück