Verschiedenfarbige Zellen in Dynamischen Tabellen
Ingo
- php
Hi Leute,
habe noch ein weiteres Problem:
Ich möchte gerne in einer Dynamischen Tabelle verschiedenfarbige Zellen erzeugen. Leider schaffe ich aber nur gleichfarbige. Kann mir jemand erklären wie das geht, bzw. sagen wo ich ein tutorial oder ähnliches diesbezüglich finde?
Danke
Ingo
Hello,
Ich möchte gerne in einer Dynamischen Tabelle verschiedenfarbige Zellen erzeugen. Leider schaffe ich aber nur gleichfarbige. Kann mir jemand erklären wie das geht, bzw. sagen wo ich ein tutorial oder ähnliches diesbezüglich finde?
Du arbeitest ja sicherlich ein Array ab für die Ausgabe der Tabelle.
Wenn Du dies in einer foreach()-Schleife tust, dann führe einen Zähler mit
$line = 0;
$output = '';
foreach( ..)
{
$line++;
$output .= ...;
...
." class="".(($line % 2)?'even':'odd').""\r\n".
}
Und an passender Stelle, z.B. wenn das <tr>-Element gabaut wird, fügst Du den obigen Code für eine Klasse ein. Die Farbe legst Du nachher mit CSS fest.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

@@Tom:
nuqneH
foreach( ..)
{
$line++;
Oder hier if ($line++ == 2) $line = 0; …
." class="".(($line % 2)?'even':'odd').""\r\n".
… dann kam man sich die Division in jedem Schleifendurchlauf sparen.
Die Farbe legst Du nachher mit CSS fest.
Nachher? Mit der Pseudoklasse :nth-child() gleich mit CSS. Eine serverseitige Vergabe von Klassen wäre dann nicht erforderlich.
Opera kann’s, Webkits können’s. Fehlt aktuell nur Firefox 3.0; ab 3.5 kann er’s dann auch.
Für IEs kann man’s mit CSS-Expressions basteln.
Qapla'
Hello Gunnar,
ich habe EKKi jetzt nicht gefragt, ob ich noch weiterdiskutieren darf, denn es geht ja jtzt nicht um HTML...
Die Idee ist gut;
Da muss man gar nicht mehr zählen:
$class = 'even';
foreach( ..)
{
Oder hier
if ($line++ == 2) $line = 0;…
### ." class="".(($line % 2)?'even':'odd').""\r\n".
." class="$class"\r\n".
...
if ($class='even') $class = 'odd' else $class = 'even';
Was nun weniger Power kostet, weiß ich nicht.
Aber so wäre es zumindest leichter verständlich, was da passiert.
Ich bin nur auf die klassische Zählerlösung gekommen, weil man sowieso oft einen Zeilenzähler mitlaufen lässt aus welchen Gründen auch immer...
Die Farbe legst Du nachher mit CSS fest.
Nachher? Mit der Pseudoklasse :nth-child() gleich mit CSS. Eine serverseitige Vergabe von Klassen wäre dann nicht erforderlich.
DAS muss ich mir auf jeden Fall schon mal nerken. Scahun wir mal, wann es alle aktuellen Browser können.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Mahlzeit Tom,
ich habe EKKi jetzt nicht gefragt, ob ich noch weiterdiskutieren darf, denn es geht ja jtzt nicht um HTML...
Komiker ...
MfG,
EKKi
PS: Ich glaube nicht, dass Du nicht weißt, was ich in dem anderen Thread meinte.
Hello EKKi,
ich habe EKKi jetzt nicht gefragt, ob ich noch weiterdiskutieren darf, denn es geht ja jtzt nicht um HTML...
Komiker ...
PS: Ich glaube nicht, dass Du nicht weißt, was ich in dem anderen Thread meinte.
Ich denke, dass Du noch nicht weißt, wie lange Dich das nun verfolgen wird...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

Mahlzeit Tom,
Ich denke, dass Du noch nicht weißt, wie lange Dich das nun verfolgen wird...
Nur solange ich will ... ;-)
MfG,
EKKi
@@Tom:
nuqneH
if ($class='even') $class = 'odd' else $class = 'even';
Wennschon sparen, dann richtig! Also ein Flag setzen (boolescher Wert), um den Vergleich von $class mit einem String (dürfte recht teuer sein) zu sparen:
. " class="".(($parity)?'even':'odd').""\r\n".
$parity = !$parity;
Die Idee hatte ich auch schon, aber wieder verworfen, da man sich damit auf zwei Streifenfarben beschränkt.
Die andere Variante lässt sich problemlos auf beliebiges n umschreiben.
»» Nachher? Mit der Pseudoklasse :nth-child() gleich mit CSS. Eine serverseitige Vergabe von Klassen wäre dann nicht erforderlich.
DAS muss ich mir auf jeden Fall schon mal nerken. Scahun wir mal, wann es alle aktuellen Browser können.
Wenn Firefox 3.5 den 3.0 ersetzt hat. Sagte ich doch schon.
Alle? Ein paar Exoten auf mobilen Endgeräten werden es vielleicht nicht können. Was soll’s, dann gibt’s halt da keine Zebrastreifen.
Qapla'
Hello,
noch ein Link zu einem Beispiel nachgeliefert:
http://www.soziologie.uni-halle.de/unger/SCRIPTs/workshop_internet/fr_css_606.html
Die Farbe legst Du nachher mit CSS fest.
Nachher? Mit der Pseudoklasse :nth-child() gleich mit CSS. Eine serverseitige Vergabe von Klassen wäre dann nicht erforderlich.
DAS muss ich mir auf jeden Fall schon mal nerken. Scahun wir mal, wann es alle aktuellen Browser können.
Liebe Grüße aus dem schön warmen Oberharz
Tom vom Berg

@@Ingo:
nuqneH
habe noch ein weiteres Problem:
Beschreib es bitte!
Ich möchte gerne in einer Dynamischen Tabelle verschiedenfarbige Zellen erzeugen.
Welche Zellen sollen denn wie gefärbt sein?
Qapla'