25.17. Wie stelle ich Tabellenzeilen abwechselnd farbig dar?Antwort von Johannes FrömterIn der folgenden Funktion bgcolor() kann man beliebig viele Farben im Array $col definieren, die bei jedem Aufruf der Reihe nach berücksichtigt werden. Optional kann die Funktion mit einem Integer-Wert aufgerufen werden (bgcolor(n)), um immer n aufeinander folgende Zeilen derselben Farbe zu erhalten. function bgcolor($row = 1) { static $i; static $col = array('#FFDDDD', '#DDFFDD', '#DDDDFF' ); // etc. $bg = $col[(int)($i + .00000001)]; $i += 1 / $row; if ($i >= count($col)) $i = 0; return $bg; } // Ausgabe einer Tabellenzeile (in einer Schleife): printf("<tr bgcolor='%s'><td>...</td></tr>\n", bgcolor(2)); Antwort von Clemens KoppensteinerBesonders, wenn man die Zeilen sowieso mitzählt, kann man den gleichen Effekt leicht mittels des Modulo-Operators (%) und CSS erreichen. printf("<tr class='row%s'><td>...</td></tr>\n", $line % 2); Und im Stylesheet: row0 {background-color:#FFDDDD} row1 {background-color:#DDFFDD} Zur Erklärung: Der Modulo-Operator gibt den Rest der Division der zwei Werte zurück. 13 % 5 ist also zum Beispiel gleich 3 (Mathematisch korrekt ausgedrückt: 13 ist kongruent 3 modulo 5). $line % 2 gibt also abwechselnd 0 und 1 zurück. |
||
25.17. Wie stelle ich Tabellenzeilen abwechselnd farbig dar? http://www.php-faq.de/q/q-code-tabellenfarbe.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |