К списку форумов К списку вопросов
РНР нужна помощь
инструм
12.03.2004 - 15:17
поможите плз
нужно чтобы строки в таблице поочередно были окрашены в два цвета
серый и белый или серый и желтый
<?php
  $filename = "list.dat";
  $lines = file("$filename");
  for ($i=0;$i<count($lines);$i++){
    list($name, $year, $amount, $price) = split(";",$lines[$i]);
    $name = trim($name);
    $email = trim($year);
    $adress = trim($amount);
    $adress = trim($price);
    print "<tr>\n";
    print " <td>$name</td>\n";
    print " <td>$year</td>\n";
    print " <td>$amount</td>\n";
    print " <td>$price</td>\n";
    print "</tr>\n\n";
  }
?>
заранее всем благодарен за ответ
buster
1 - 12.03.2004 - 15:23
<?php
  $filename = "list.dat";
  $lines = file("$filename");
  $color=true;
  for ($i=0;$i<count($lines);$i++){
    if($color)
      $bgcolor='#ffffff';
    else
      $bgcolor='#ffffcc';
    $color=!$color;
    list($name, $year, $amount, $price) = split(";",$lines[$i]);
    $name = trim($name);
    $email = trim($year);
    $adress = trim($amount);
    $adress = trim($price);
    print "<tr bgcolor='".$bgcolor."'>\n";
    print " <td>$name</td>\n";
    print " <td>$year</td>\n";
    print " <td>$amount</td>\n";
    print " <td>$price</td>\n";
    print "</tr>\n\n";
  }
?>
DIVЕR
2 - 12.03.2004 - 15:30
Первое, что приходит в голову:
...
$adress = trim($price);
$color = ( $i % 2 ) ? "white" : "grey";
print "<tr id=\"$color\">\n";
print " <td>$name</td>\n";
print " <td>...
...
В CSS сделать так:
td#grey {
 background-color: $ccc;
}
td#white {
 background-color: $fff;
}
DIVЕR
3 - 12.03.2004 - 15:31
ааа
опоздал чуть-чуть =))))
DIVЕR
4 - 12.03.2004 - 15:33
Кстати, давайте сравним представленные решения =)))
В моём варианте добавлены 1,5 строчки в код и стиль настраивается через CSS (как это в принципе и должно быть)
=)))
Уверенный
5 - 12.03.2004 - 15:33
Да, и кроме того, забыл $color менять в цикле :)
Уверенный
6 - 12.03.2004 - 15:34
Пардон, ignore me please :)
DIVЕR
7 - 12.03.2004 - 15:56
ПРОШУ ПРОЩЕНИЯ! ошибочку я всё-таки у себя нашёл небольшую:
Надо в CSS вместо td# написать tr#!!!
...
(просто я сначала пример свой написал как <td id="$color">, а потом всё-таки решил делать для всей строки сразу ;) )
buster
8 - 12.03.2004 - 15:58
Не мега-принципиально :о)) Хотя через CSS - это правильно. Так держать! ;)
инструм
9 - 12.03.2004 - 16:13
Всем спасибо все очень наглядно и понятно
Mips
10 - 12.03.2004 - 19:21
DIVЕR, и ещё бы строку убрал, раз уж это так важно для тебя ;)
print "<tr bgcolor='".(($i%2)?"gray":"silver")."'>\n";
А к чему там $adress ? он же не юзается. Ну и ещё пару строк убрать, написав....
print " <td>".trim($name)."</td>\n";
Хотя, по сути всё равно пробелы не видно будет...
    
DIVЕR
11 - 15.03.2004 - 10:36
Mips, да можно вообще всё в одну строку написать =))
Я пытаюсь соблюдать меру (это по поводу убирания ещё одной строки) между рационализацией, количеством строк и читабельностью.....
%)
Mips
12 - 15.03.2004 - 15:06
всё читабельно, читать просто надо уметь ;)

К списку вопросов на форуме Веб-дизайн

>>