PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Variablen in Array überschreiben (http://www.selfphp.de/forum/showthread.php?t=22624)

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 (&lt;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>


manya 04.01.2010 14:18:21

AW: Variablen in Array überschreiben
 
Ich habe es selbst herausgefunden. :-)

Habe das Array nicht zuerst mit den rgb-Werten gefüllt, sondern gleich mit den Hex-Werten.
Nun besteht zwar der Linktext nicht, wie gewünscht, aus rgb-Werten, sondern aus Hex-Werten, aber das ist jetzt mal nicht so schlimm. ;-)

Gruß
manya


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:23:36 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.