Systemvoraussetzung
- Linux
- Windows
- PHP 3
- PHP 4
- PHP 5
Datei(en)
tableColor.php
Problem
Gerade bei der Darstellung von dynamisch erzeugten unterschiedlichen Zeilenfarben
einer Tabelle stellt sich die Frage, wie dieses Problem am einfachsten
zu lösen ist. Es kommt immer wieder vor, dass man z. B. durch eine Datenbankabfrage
mehrere Datensätze hat, die in einer Tabelle abwechselnd mit
einer anderen Hintergrundfarbe dargestellt werden sollen.
Lösung
Handelt es sich bei der Methode für den Farbwechsel um zwei unterschiedliche
Farben, so kann in diesem Fall der Modulos-Operator
herangezogen werden.
Wir teilen einfach eine Zahl (hier im Beispiel durch eine FOR-Schleife
ermittelt)
durch 2 und ermitteln dadurch den Restwert der Division.
Ist das Ergebnis ungerade (z. B. 1, 3, 5, 7), so erhalten wir als Restwert 1, bei
einem geraden Restwert (z. B. 0, 2, 4, 6) dagegen die 0 (Null). Diese beiden
Werte reichen vollständig aus, um damit über eine CSS-Klasse
die Farbe zu
bestimmen (siehe Beispiel).
Diese Berechnung ist völlig ausreichend für den Aufbau der Darstellung. Wir
definieren in unserer Datei zwei verschiedene CSS-Klassen
mit den Namen
.row_0 und .row_1 (41 und 44).
Wichtig ist hier, dass sie einmal auf 1 (Eins) und einmal auf 0 (Null) enden. Somit
haben wir einen Punkt geschaffen, den wir später automatisch austauschen
können.
Wir durchlaufen jetzt unsere FOR-Schleife
(53) und berechnen jeweils anhand
der Variable $i den Modulos dafür. Da sich diese Variable bei jedem Schleifendurchlauf
erhöht, erhalten wir als Rückgabewert der Modulos-Berechnung entweder eine 0 (Null) oder eine 1 (Eins). Diese müssen wir jetzt nur noch an
unsere CSS-Definition
anhängen (56) und haben somit die Farbe bestimmt.
Natürlich können Sie auch anstatt einer FOR-Schleife
z. B. eine WHILE-Schleife
(gerade bei Datenbankabfragen häufig genutzt) verwenden. Sie müssen dafür
das Beispielskript nur geringfügig ändern (siehe Veränderung bei WHILE-Schleifen).
24:
25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head> <title>Abwechselnde Zeilenfarben</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- .tableLine {
font-family: Verdana,Arial,sans-serif;
font-style: normal;
font-size: 9px;
BORDER-TOP: #A6A6A6 1px solid;
BORDER-LEFT: #A6A6A6 1px solid;
BORDER-BOTTOM: #A6A6A6 1px solid;
BORDER-RIGHT: #A6A6A6 1px solid; } .row_0 { background-color: #FFFFFF; } .row_1 { background-color: #E1E8F1; } --> </style> </head> <body> <table width="300" border="0" cellpadding="0" cellspacing="0"
class="tableLine">
<?PHP for($i=0;$i<=9;$i++){ ?> <tr> <td class="row_<?PHP echo $i % 2; ?>">Reihe <?PHP echo $i; ?></td> </tr> <?PHP } ?> </table> </body> </html>
|
Beispiel 5.1: tableColor.php
Abbildung 5.1: Ausgabe:
Tabelle mit Spalten
Wir wollen unser Beispiel dahin verändern, dass jetzt die Datensätze aus einer
Datenbank kommen und in einer WHILE-Schleife
(4) ausgegeben werden. Bei
einer WHILE-Schleife
haben Sie keinen Wert, der sich automatisch erhöht (wie
z. B. bei einer FOR-Schleife),
sondern Sie müssen diesen Wert selbst setzen (3)
und erhöhen (11).
01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14:
|
<table width="300" border="0" cellpadding="0" cellspacing="0" class="tableLine"> <?PHP $i = 0; while($row = @mysql_fetch_row($result)){ ?> <tr> <td class="row_<?PHP echo $i % 2; ?>">Reihe <?PHP echo $i; ?></td> </tr> <?PHP $i++; } ?> </table>
|
Wie Sie sehen, haben wir hier auf einfache Art und Weise die Tabellenzeilen
abwechselnd farbig dargestellt. Gerade bei solchen Problemstellungen können
uns immer wieder mathematische Berechnungen weiterhelfen. Sie sollten daher
immer im Vorfeld überlegen, ob die Lösung des Problems mit mathematischen
Berechnungen einwandfrei darzustellen ist.
Dieses Skript aus dem SELFPHP KOCHBUCH wurde von SELFPHP unter dem "Tarif Mc500" von McAc.net-Webhosting erfolgreich ausgeführt und getestet!
Auf der Übersichtseite unter "McAc.net – Webhosting zu diesem Buch" finden Sie weitere Informationen zu dem Webhostingpaket, dass durch SELFPHP getestet wurde.
|