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>