Aktiven Link hervorheben

nordi

Erfahrenes Mitglied
Hallo, ich habe ein Problem mit dem Hervorheben eines aktiven "Links" (<span>). Also die Namen werden aus einer Datenbank ausgelesen und mit einem Wert verknüpft:

PHP:
<?php
			
			include("../../config/config.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\">";
while($row = mysql_fetch_array($result))
{

	if (trim($row['bild_pfad']) != "")
		echo "<span class=\"artistlink\" onclick=\"for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].class = 'artistlink';};this.class= '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=\"artistlink\" onclick=\"for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].class = 'artistlink';};this.class= 'filmmarkierer';image_content('".$row['swf_pfad']."','".$row['swf']."',2);\" >".$row['swf']."</span><br>";

}
echo "</table>";

			
?>

Das Hervorheben soll mit der CSS Klasse " filmmarkierer " erfolgen - wurde auch so im Code angegeben.. aber irgendwie passiert nix und der Namen/Links werden ganz normal dargestellt.. ? Woran kann das liegen?

Gruß
 
Wenn du dir den HTML-Quelltext der Ausgabe anguckst, wird dort alles richtig eingetragen? oder fehlt dort etwas? Wenn alles richtig eingetragen ist, wird das wohl ein Problem mit CSS sein. Da gibt es im Bereich CSS/HTML mehr Leute, die das beantworten können!
 
Hi, also im Quelltext steht es bsplw. so:

HTML:
<table id="playlist" width="100%" border="0" cellspacing="0" cellpadding="0"><span class="artistlink" onclick="for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].class = 'artistlink';};this.class= 'filmmarkierer';image_content('/admin/artists/content/datei_preview-8.jpg1218030726.jpg','WAHIT',1);" >WAHIT</span><br><span>Mauenheim</span><br><span>Palomafuente</span><br><span>Marienfeld</span><br></table>

Stimmt da was nicht? Außerhalb von dem PHP-Code funktioniert die CSS-Formatierung..?!
 
das hier ist ja dein Javascript:
HTML:
for (i = 0;i <document.getElementsByTagName('span').length; i++)
{
document.getElementsByTagName('span')[i].class = 'artistlink';};
this.class= 'filmmarkierer';
image_content('/admin/artists/content/datei_preview-8.jpg1218030726.jpg','WAHIT',1);

Was machst du denn hier? Das versteh ich nicht.

Du setzt this.class x-mal auf filmmarkierer...dasergibt doch gar keinen sinn? einmal würd doch reichen.

Was du versuchen könntest, dein Javascript in eine Function umzulagern und nur die Funktion aufzurufen. Vielleicht gibt es ja Probleme mit \ " und ' ....wobei ich hier keine sehe. Aber mit ner Funktion wird es auf jeden Fall einfacher (und übersichtlicher).
 
Hi,

Du setzt this.class x-mal auf filmmarkierer...dasergibt doch gar keinen sinn? einmal würd doch reichen.

Nein. Die Klammer der for-Schleife wird davor geschlossen (ist allerdings schwer zu sehen bei der Schreibweise).

@nordi: Hinter der schließenden Klammer steht noch ein Semikolon, das da nicht hingehört. Was sagt die Fehlerkonsole?
Du solltest das wirklich in eine Funktion auslagern...

LG
 
Ok hast Recht. Das mit dem Semikolon hat mich total verwirrt, hab das garnciht geschnallt.
Das könnte dann aber auch fehlerauslösend sein :p weil der Parser dort bestimmt Probleme hat.
 
Hi, welche Klammer meinst du?

PHP:
if (trim($row['bild_pfad']) != "")
		echo "<span class=\"artistlink\" onclick=\"for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].class = 'artistlink';}this.class= '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=\"artistlink\" onclick=\"for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].class = 'artistlink';}this.class= 'filmmarkierer';image_content('".$row['swf_pfad']."','".$row['swf']."',2);\" >".$row['swf']."</span><br>";

So funktioniert es auch nicht!?
 
Hi, Quellcode schaut wie folgt aus:

HTML:
<table id="playlist" width="100%" border="0" cellspacing="0" cellpadding="0">
<span class="artistlink" onclick="for (i = 0;i <document.getElementsByTagName('span').length; i++){document.getElementsByTagName('span')[i].class = 'artistlink';}this.class= 'filmmarkierer';image_content('/admin/artists/content/datei_preview-2.jpg1216830957.jpg','Art acting 2',1);" >Art acting 2</span><br><span>Wiederkäuer</span><br></table>

Was meinst du mit Fehlerkonsole und FF ?
 

Neue Beiträge

Zurück