PHP - 帮助编码echo语句以创建不同背景颜色的每隔一行

时间:2010-08-14 17:44:25

标签: php html css loops

我正在动态创建一个表(stats_1),并希望每行都有不同的背景颜色。到目前为止,所有线条都具有相同的背景颜色。

我有以下php代码打印回声和语句:

$keys = array('Col1', 'Col2','Col3','Col4','Col5','Col6','Col7');
echo '<table id="stats_1"><tr>';            
foreach ($keys as $column)
   echo '<th>' . $column . '</th>';
    echo '</tr>';

foreach ($data as $row){                        
   echo '<tr class="alt">';                     
     foreach ($keys as $column)
        if (isset($row[$column])){              
          echo '<td>' . $row[$column];
          } else {
          echo '<td>' . '' . '</td>';
        }
}
echo '</table>';

我需要一些帮助,使每个行($ row)具有不同的颜色,但不知道如何使用echo语句以编程方式执行此操作。因此,它会在以下之间交替打印:

echo '<tr class="alt">';  or   echo '<tr>';

我在课堂上定义:

#stats_1 tr.alt td
{
color:#000000;                  
background-color:#E0E0FF;       
}

感谢您的帮助/输入。

2 个答案:

答案 0 :(得分:5)

尝试:

$counter = 0;
foreach ($data as $row){
  $counter++;

  $class = $counter % 2 === 0 ? 'foo' : 'bar';
  echo '<tr class="' . $class . '">';

  // more code....

foobar应该是替换颜色的类名。

答案 1 :(得分:1)

<强> CSS

http://www.w3.org/Style/Examples/007/evenodd - 它不能简单地通过CSS完成,因为nth-child属性的support到目前为止还不是很好。

<强>的JavaScript

http://api.jquery.com/odd-selector/ - 使用JavaScript中的jQuery库,任务非常简单。缺点是颜色可能会稍晚一些,用户可能会注意到(从我的角度来看,这是一个缺点)。

<强> PHP

@Sarfraz介绍了如何使用PHP完成着色的简单方法。

<强>结论

在主要浏览器中实现CSS属性nth-child之前,PHP似乎是最好的选择。