• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zeilen einer Tabelle abwechselnd Farbig hinterlegen

Status
Für weitere Antworten geschlossen.

aaronh

Neues Mitglied
hi

ich habe mal eine frage und zwar möchte ich für einen shop in einer emailrechnung die zeilen einer tabelle abwechselnd grau oder weiß hinterlegen (also bgcolor="#ffffff" oder #CCCCCC)

meine tabelle sieht folgendermaßen aus:

Code:
<table border="0"  bordercolor="#000" cellpadding="0" cellspacing="0">
                    
                        <!--spmacro:loopitem-->
                          <tr  bgcolor="#CCCCCC"class="color2">
                            <td align="left" width="80">__id__</td>
                            <td align="left" width="400">__produkt__, __NAME2__ __NAME3__ __FARBE__</td>
                                               <td align="right" width="60">__anzahl__</td>
                            <td align="right" width="80">__preis__</td>
                            <td align="right" width="80">__ustsatz__</td>
                            <td align="right" width="80">__gesamteinzel__</td>
                        </tr>
            <!--spmacro:enditem-->
</table>
wie müsste jetzt also der code aussehen bzw. wie muss das verändert werden damit die zeilen abwechselnd eingefärbt sind? __xxxxxx__ sind vars.

an der stelle "<tr bgcolor="#CCCCCC"" sollte statt bgcolor="#CCCCCC" sowas wie bgcolor="$farbe" oder so stehen....
der code sollte wenn möglich kein js sein......php oder wenn möglich html wären perfekt.....

zur anmerkung: ich hab im internet schon ausgiebig gesucht und auch selber probiert...

danke
lg aaronh
 
Werbung:
Du gibst den Zeilen abwechselnd eine Klasse, Color1 für die erste Zeile, Color2 für die zweite Zeile.

Per CSS definierst du dann für die Klassen jeweils eine Hintergrundfarbe.
 
ja so der grundgedanke den du hier nennst der ist mir wohl bewusst gewesen sonst hätt ich nicht mit so ner aufgabe angefangen...soweit reichen meine kenntnisse auch.....nur wie definier ich jetzt die klassen so dass die farben sich abwechseln??

das muss ja so was sein wie... wenn ungerade zahl dann grau (also zeile 1,3,5,7,...... ) und wenn zeilen nummer gerade (also zeile 2,4,6,8,....) dann bgcolor=weiß.....

aber wie müsste der code in etwa aussehen?

ich hab jetzt schon div. probiert mit dem ergebniss: falsche anzeige etc.

lg aaron
 
Werbung:
PHP:
    <table>
      <tr class="color1">
        <td></td>
      </tr>
      <tr class="color2">
        <td></td>
      </tr>
    </table>
Code:
.color1 {background-color: #aaa;}
.color2 {background-color: #ddd;}
 
danke erst mal dass du dir hier die arbeit machst mir zu helfen!!!!

leider hab ich wohl das problem nicht genau genug beschrieben....

es handelt sich nicht um eine feste anzahl von zeilen da ja ein kunde vlt 3 artikel bestellt und ein ander 8 .....es handelt sich in dem code denn ich gegeben hab um <tr>´s die sich je nach anzahl der verschiedenen artikel vervielfältigen....es ist n schnipsel aus einer email bestätigung....

also müsste es sowas sein wie :

Code:
<table>
......
[COLOR=Red]if zeilennummer gerade (z.b. 2,4,6,8,....) 
than
$farbe (oder__farbe__ weiß leider nicht was von beiden)="#000000"
else 
$farbe (oder__farbe__ )="#CCCCCC"[/COLOR]

.......

<tr [COLOR=Red]bgcolor="$farbe"[/COLOR] ><td>__xxxxxx__</td></tr>
</table>


leider weiß ich nicht wie ich die funktion schreiben könnte
 
Wenn Du php verwendest:

Code:
<?
if($bg == 1){$bg = 2;}else{$bg = 1;}
?>
<tr class="bgcolo<? echo $bg; ?>">

Die Klassen hießen dann "bgcolor1" und "bgcolor2" (genaue Namen sind natürlich egal, nur die Zahlen sind wichtig).
 
Werbung:
danke erst mal dass du dir hier die arbeit machst mir zu helfen!!!!
Deswegen bin ich ja hier.

leider weiß ich nicht wie ich die funktion schreiben könnte
Da gibt es mehrere Lösungen.

Erstmal brauchst du eine for-Schleife, die so oft läuft, wie der Kunde Artikel ausgewählt hat.

PHP: for - Manual

Dann brauchst du eine Variable, die dir sagt, in welcher Zeile du dich befindest, oder ob sie gerade oder ungerade ist.

Diese Variante arbeitet mit der Operation Modulo
PHP:
for ($i = 0; $i < 10; ++$i) {
  if ($i % 2 == 0) {
    echo 'gerade';
  } else {
    echo 'ungerade';
  }
}
Eine andere Möglichkeit wäre
PHP:
$b = false;
for ($i = 0; $i < 10; ++$i) {
  if ($b === true) {
    echo '0';
  } else {
    echo '1';
  }
  $b = !$b;
}
 
PHP:
for ($i = 0; $i < 10; ++$i) {
  if ($i % 2 == 0) {
    echo 'gerade';
  } else {
    echo 'ungerade';
  }
}

aber wie binde ich jetzt sowas jetzt ein?

so in etwa?
Code:
<?php
{
[COLOR=#000000][COLOR=#007700]for ([/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000bb]10[/COLOR][COLOR=#007700]; ++[/COLOR][COLOR=#0000bb]$i[/COLOR][COLOR=#007700]) {
  if ([/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]% [/COLOR][COLOR=#0000bb]2 [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700]) {
    [COLOR=#dd0000]then $farbe="#000000"[/COLOR][/COLOR][COLOR=#007700];
  } else {
    [COLOR=#dd0000]$farbe="#CCCCCC"[/COLOR][/COLOR][COLOR=#007700];
  }
}
<table>
<tr bgcolor="$farbe"><td></td></tr>
</table>
[COLOR=Black]?>[/COLOR]
[/COLOR][/COLOR]

ist das so zu verwenden oder was muss anders???

vielen Dank noch mal

lg
aaron
 
Das 'then' gehört da nicht hin, ansonsten sieht das gut aus, wenn die erste geschweifte Klammer zu deinem Code gehört, denn sonst ist die da falsch.
 
Werbung:
sry hab vergessen die geschweifte klammer wieder zuzumachen nach dem </table>
Code:
<?php
{
[COLOR=#000000][COLOR=#007700]for ([/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000bb]10[/COLOR][COLOR=#007700]; ++[/COLOR][COLOR=#0000bb]$i[/COLOR][COLOR=#007700]) {
  if ([/COLOR][COLOR=#0000bb]$i [/COLOR][COLOR=#007700]% [/COLOR][COLOR=#0000bb]2 [/COLOR][COLOR=#007700]== [/COLOR][COLOR=#0000bb]0[/COLOR][COLOR=#007700]) {
    [COLOR=#dd0000]$farbe="#000000"[/COLOR][/COLOR][COLOR=#007700];
  } else {
    [COLOR=#dd0000]$farbe="#CCCCCC"[/COLOR][/COLOR][COLOR=#007700];
  }
}
<table>
<tr bgcolor="$farbe"><td></td></tr>
</table>
[COLOR=Black]}[/COLOR]
[COLOR=Black]?>[/COLOR] [/COLOR][/COLOR]
also der code müsste jetzt gehn?

ist ein
<!--spmacro:loopitem--> bzw <!--spmacro:enditem--> vor bzw hinter dem <tr></tr> (siehe
code oben...)von bedeutung für die funktionalität des scripts?
 
Ich meinte aber die vor der for-Schleife. Wenn da nichts weiteres mehr kommt, müssen beide Klammern wieder weg, wenn das eine Funktion sein soll, fehlt noch der Funktionsname.

Ob er funktioniert, findest du ganz einfach raus, indem du es testet ;)
 
Werbung:
Normalerweise würde man das mit der CSS-Pseudoklasse ":nth-child" machen. Da diese aber von gewissen Browsern nicht unterstützt wird, macht man es halt auf dem schon beschriebenen Umweg über zwei unterschiedliche Klassen.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben