manya |
04.01.2010 12:59:14 |
Variablen in Array überschreiben
Hallo,
Ich bin neu hier und noch PHP-Anfänger.
Nun möchte ich eine Linkliste erzeugen, deren einzelne Elemente den Body-Hintergrund entsprechend einfärben.
Wenn ich mit rgb-Werten rechne, klappt das auch, allerdings nur im IE-6.
Alle anderen Browser benötigen den hexadezimalen Farbwert in der Zeile mit dem "OnMouseOver".
Ich habe nun mit dechex den rgb-Wert umgewandelt, und in der Variablen $farb-hex gespeichert. Aber wie kann ich nun damit das schon erzeugte Array überschreiben, oder einfach nur in Zeile 111 den hex-Wert dynamisch einsetzen.
Im MOment steht im erzeugten Quellcode in der Zeile
<A href='#' onMouseOver='document.bgColor="#a6a652"'
immer nur der gleiche Wert.
Für einen verständlichen Tip wäre ich dankbar. :-)
Gruß
manya
Schritt-5 im script ist falsch, deshalb habe ich es mal auf Kommentar gesetzt.
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css">
ul { margin: 0; padding: 0.5em; float: left; margin: 3em 2em 2em 0; background-color: white; border: 1px solid black; list-style: none; width: 12em; font-family: Verdana, Arial, Helvetica, sans-serif; }
li { border: 1px solid black; margin-bottom: 1px; }
li a { display: block; height: 1.5em; font-weight: bold; padding: 5px; }
li a:hover { color: white; }
</style> <script type="text/javascript">
</script> </head> <body>
<?php $rot = 222; $gelb =222; $blau = 166; $arr_oliv[ ] = "rgb($rot, $gelb, $blau)";
// 1. rgb-Werte nach jedem Durchlauf um einen bestimmten // Wert verändern und in einem array ausgeben for ($anzahl = 1; $anzahl <= 7; $anzahl ++) { $rot = $rot - 8; // echo " r= $rot, "; $gelb = $gelb - 8; // echo " g= $gelb, "; $blau = $blau - 12; // echo " b= $blau, "; $arr_oliv[ ] = "rgb($rot, $gelb, $blau)"; echo "rgb($rot, $gelb, $blau) ===> "; // 2. jeden Wert einzeln konvertieren in Hexa-Wert echo dechex($rot); echo dechex($gelb); echo dechex($blau) . "<br><br>" . "\n";
// 3. Einzelwerte in je einer Variablen speichern $hex_rot = dechex($rot); echo "hex_rot = $hex_rot ,"; $hex_gelb = dechex($gelb); echo " hex_gelb = $hex_gelb ,"; $hex_blau = dechex($blau); echo " hex_blau = $hex_blau , ";
// 4. die 3 Einzelwerte verketten, Lattenzaun hinzufügen, // und in der Variablen "farb_hex" speichern $farb_hex = "#" . $hex_rot . $hex_gelb . $hex_blau; echo " farb-hex = " . $farb_hex . "<br><br><br>" . "\n";
// 5. mit der Variable "farb-hex" das bestehende rgb-array-Element // überschreiben // $arr_oliv[ ] = $farb_hex; // echo " arr_oliv = $arr_oliv[ ] <br><br><br>" . "\n";;
}
?>
<div id="box" class="a2"> <h3>Liste (<ul>)mit Farbverlauf nach oliv</h3>
<ul>
<?php // das array auslesen, und jedem list-Element einen Wert // aus diesem array als Hintergrund zuweisen. foreach ($arr_oliv as $feld) { echo " <li style='background-color: $feld'>\n"; echo " <A href='#' onMouseOver='document.bgColor=\"$farb_hex\"'\n"; echo " style='color: white'> $feld </a></li>\n\n"; } ?> </ul>
</div>
<hr style="clear: both:"> <br> <br> <br>
</body> </html>
|