Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przemienne kolory rekordów w tabeli
Forum PHP.pl > Forum > Przedszkole
eurosoft
w jaki sposób można zrobić przemienne kolorowanie kolejnych rekordów w tabeli?
Poniżej fragment kodu generującego tabelę:

  1. ...
  2. echo "<th>Ilość</th>";
  3. echo "<th>Osoba wpisująca</th>";
  4. echo "<th>Info</th>";
  5.  
  6. while($r = mysql_fetch_array($result) and $z = mysql_fetch_array($result1))
  7.  
  8. {
  9. echo "<tr>";
  10. echo "<td width=40 align=center>".$r[0]."</td>";
  11. echo "<td width=140>".$r[1]."</td>";
  12. echo "<td width=50 align=center>".$r[2]."</td>";
  13. echo "<td width=60 align=center>".$r[3]."</td>";
  14.  
  15. ....
Ghost_78
najprosciej tak:
  1. $i=0;
  2. while($r = mysql_fetch_array($result) and $z = mysql_fetch_array($result1)){
  3. if ($i==0){
  4. $color='background-color: red;';
  5. $i=1;
  6. }else{
  7. $color='background-color: green;';
  8. $i=0;
  9. }
  10. echo "<tr style=\"$color\">";
  11. echo "<td width=40 align=center>".$r[0]."</td>";
  12. echo "<td width=140>".$r[1]."</td>";
  13. echo "<td width=50 align=center>".$r[2]."</td>";
  14. echo "<td width=60 align=center>".$r[3]."</td>";
Quantum
  1. for ( $i = 0; $i < 10; $i ++ )
  2. {
  3. if ( $i % 2 == 0 )
  4. {
  5. echo 'kolor 1';
  6. }
  7. else
  8. {
  9. echo 'kolor 2';
  10. }
  11. }


zadeklaruj sobie przed while zmienną $i = 0, a pod koniec pętli ją zwiększasz o 1 - ++$i; sprawdzanie polega na dzieleniu przez modulo, jeżeli jest liczbą parzystą wyświetli kolor 1, jeżeli nie kolor 2
phpion
Cytat(Ghost_78 @ 9.11.2010, 09:04:25 ) *
najprosciej tak:

Nie, najprościej tak:
http://www.w3.org/Style/Examples/007/evenodd.html
Quantum
Cytat(phpion)


a jak z obsługą even/odd w przeglądarkach ? z tego co pamiętam były jakieś problemy z ie.
norbis
Koledzy dobrze kombinują, ale można jeszcze uprościć winksmiley.jpg

  1. $i=0;
  2. while($r = mysql_fetch_array($result) and $z = mysql_fetch_array($result1)){
  3. $i++;
  4. echo '<tr style="'.($i%2==0?'background-color: red;':'background-color: green;').'">';
  5. echo "<td width=40 align=center>".$r[0]."</td>";
  6. echo "<td width=140>".$r[1]."</td>";
  7. echo "<td width=50 align=center>".$r[2]."</td>";
  8. echo "<td width=60 align=center>".$r[3]."</td>";
  9. }
eurosoft
Niestety nie działa, po wprowadzeniu modyfikacji do kodu tabela pokazyje tylko jeden rekord, a dodatkowo pierwsze są puste. sad.gif
norbis
A zamykasz <tr>?
eurosoft
tak oczywiście tr jes zamknięty
andrzej_
Poszedłbym za radą phpion.

  1.  
  2. <style type="text/css">
  3. .tab tr:nth-child(odd) {
  4. border: 0px;
  5. background-color:#e2e1e1;
  6. }
  7.  
  8. .tab tr:nth-child(even) {
  9. border: 0px;
  10. background-color:#f6f6f6; }





  1.  
  2. <table class='tab'>
  3.  
  4. ...
  5. echo "<th>Ilość</th>";
  6. echo "<th>Osoba wpisująca</th>";
  7. echo "<th>Info</th>";
  8.  
  9. while($r = mysql_fetch_array($result) and $z = mysql_fetch_array($result1))
  10.  
  11. {
  12. echo "<tr>";
  13. echo "<td width=40 align=center>".$r[0]."</td>";
  14. echo "<td width=140>".$r[1]."</td>";
  15. echo "<td width=50 align=center>".$r[2]."</td>";
  16. echo "<td width=60 align=center>".$r[3]."</td>";
  17.  
  18. ....
minolone
Można też zastosować bibliotekę jQuery. Link
eurosoft
dziękuję wszystkim
widać jak się siedzi to i błąd się znajdzie, a błąd był w pisowni....ehhhhh
brakowało średnika w jednej z linii
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.