| Tabellenzeilen mit wechselnder Hintergrundfarbe |
Tabellezeilen mit wechselnder Hintergrundfarbe zu erzeugen ist nicht schwerEiner der Klassiker unter den Anfängerfragen ist, wie man eine Tabelle erzeugen kann bei die einzelnen Zeilen eine abwechselnde Hintergrundfarbe haben. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>phpBuddy.eu - Tabellenzeilen mit wechselnden Hintergrundfarben</title> <style type="text/css"> #tabelle { width: 400px; border: 1px solid #000000; margin: 0 auto; } th { border-bottom: 2px solid #000000; } .trhd { background: #FDE8D9; } .weiss { background: #FFFFFF; } .grau { background: #DFDFDF; } </style> </head> <body> <div id="tabelle"> <table width="400" cellpadding="0" cellspacing="0"> <tr class="trhd"> <th align="center" width="20%">ID</th> <th width="40%" align="left">Name</th> <th width="40%" align="left">Beruf</th> </tr> <?php $personen = array ( "Andreas" => "Webentwickler", "Michael" => "Schreiner", "Sabine" => "Sekretärin", "Matthias" => "KFZ-Mechaniker", "Yvonne" => "Einzelhandelskauffrau", "Jasmin" => "Verkäuferin", "Peter" => "Architekt" ); foreach ($personen as $name => $beruf) { echo $farbe = ($farbe == '<tr class="weiss">') ? '<tr class="grau">' : '<tr class="weiss">'; echo "\n"; echo ' <td align="center" width="20%">' . ++$i . '</td>' . "\n"; echo ' <td width="40%">' . $name . '</td>' . "\n"; echo ' <td width="40%">' . $beruf . '</td>' . "\n"; echo '</tr>' . "\n"; } ?> </table> </div> </body> </html> Der obere Teil ist der Head einer normalen HTML Datei. Im CSS Teil, der natürlich auch in eine externe Datei ausgelagert werden kann, wird das Aussehen der Seite und unserer Tabelle bestimmt. Dort sehen wir auch zwei CSS Klassen, die sich weiss und grau nennen. Diese beiden Klassen werden für die abwechselnde Farbe sorgen. Im Body öffnen wir die Tabelle und fügen den Tabellenkopf ein, anschließend befüllen wir die Tabelle mit Zeilen im PHP. Zunächst wird ein Array mit Demo-Daten erzeugt, damit man auch etwas zum ausgeben hat. Statt dieser Array-Daten könnte man hier auch Datensätze aus einer Datenbankabfrage, XML Datei, o.ä. verwenden. In unserem Beispiel verwenden wir eine foreach-Schleife, aber der Schleifentyp ist unerheblich, weil es hier nur auf den Loop ankommt. echo $farbe = ($farbe == '<tr class="weiss">') ? '<tr class="grau">' : '<tr class="weiss">'; Dieses, für Anfänger häufig verwirrende, Konstrukt nennt sich Trinary Operator, auch bekannt als Dreifach-Operator oder Trinär-Operator und manchmal auch Ternär-Operator genannt. Es ist eine Kurzschreibweise für ein if-else Konstrukt. In unserem Fall allerdings für ein if-elseif. if ($farbe == '<tr class="weiss">') { $farbe = '<tr class="grau">'; echo $farbe; } elseif ($farbe == '<tr class="grau">') { $farbe = '<tr class="weiss">'; echo $farbe; } Hier geben wir den kompletten öffnenden tr-Tag, also die Tabellenzeile, inklusive CSS Klasse aus. Man könnte es auch etwas umschreiben, damit man nur den eigentlichen CSS Klassenname ausgibt. Der Rest der Schleife in der Datei gibt einfach nur die Daten in die Tabellenzellen aus. Wie man sieht ist es ganz einfach eine Tabelle mit abwechselnder Hintergrundfarbe zu erzeugen. Wechselnde Hintergrundfarbe (1 KB) |