2013-02-13 84 views
0

我使用CodeIgniter PHP框架。如何获取相同数据的相同背景颜色?

我的视图代码:

<?hp 
    $nomor_III=1; 

    foreach ($listPertanyaanBlokIII as $data){ 
     echo '<tr>'; 
     echo '<td>'.$nomor_III.'</td>';               
     echo '<td style="text-align:left;padding-left:5px;">'.$data['jenis_barang'].'</td>'; 
     echo '<td>'.$data['id_kualitas_barang'].'</td>'; 
     echo '<td style="text-align:left;padding-left:5px;">'.$data['kualitas_barang'].'</td>'; 
     echo '<td>'.$data['satuan'].'</td>';   
     echo '<td>'.form_input('res1_'.$data['id_kualitas_barang'].'').'</td>'; 
     echo '<td>'.form_input('res2_'.$data['id_kualitas_barang'].'').'</td>'; 
     echo '<td>'.form_input('res3_'.$data['id_kualitas_barang'].'').'</td>'; 
     echo '<td style="width:200px;"><textarea name="ket_'.$data['id_kualitas_barang'].'" rows="2" cols="30"></textarea></td>'; 
     echo '</tr>'; 

     $nomor_III=$nomor_III+1; 
    } 
?> 

而且,在浏览器中查看:

Num | Product 
---------------- 
1 | Plate 
2 | Plate 
3 | Glass 
4 | Glass 

我怎样才能让用相同的描述数据具有相同的背景颜色?例如,“玻璃”变成灰色,在“盘子”将是白等

+3

[off-topic] O_o“semen”?什么是你的母语? ;-) – Jeroen 2013-02-13 13:06:36

+3

Crayola的“Semen White”新颜色。 – 2013-02-13 13:07:21

+0

对不起,在我的国家“精液”是“水泥”..对不起,我急着为我的项目... :( – beben 2013-02-13 13:22:49

回答

0

您可以检查子字符串匹配,并根据它

+0

感谢之前,但我想让它像斑马表,灰白色灰白色, ,同一种颜色的产品..数据是动态..对不起,我可怜的英语,我匆忙..谢谢... – beben 2013-02-13 13:20:12

+0

好吧,那么你可以这样做,因为我建议通过检查你的字符串中的子字符串。如果存在,那么你可以应用一个特定的类替代。 – Hardik 2013-02-13 13:23:52

1

只需添加色彩描述为一类应用的背景颜色。虽然我不明白你的数组键,它应该是这样的:

echo '<td class="'.$data['description'].'">'.$data['description'].'</td>'; 

将有一个对应的类为每个descrption:

.paku { 
    background-color: #000000; 
} 

编辑:如果你想有一个斑马表,你可以用CSS3:

tr:nth-child(even) { 
    background-color: #DCDCDC; 
} 

tr:nth-child(odd) { 
    background-color: #FFFFFF; 
} 
+0

但如果描述包含'帕库123','帕库456'等? – Hardik 2013-02-13 13:10:58

+0

如果是这种情况,则需要对颜色名称进行一些预处理,也许可以用破折号替换空格,然后使用全名“.paku-123 {color:#000FFF; }' – mcryan 2013-02-13 13:13:14

+0

感谢之前,但我想让它像斑马表,灰色白色灰色白色,同一种颜色的产品..而数据是动态..对不起,我可怜的英语,我匆忙。 。谢谢... – beben 2013-02-13 13:19:34

0

你可以尝试重组你的初始数据集$listPertanyaanBlokIII,使得它按产品分组:

Array 
(
[plate] => Array 
    (
     [0] => plate 123 
     [1] => plate 456 
    ) 

[glass] => Array 
    (
     [0] => glass 123 
     [1] => glass 456 
    ) 
) 

然后(简化代码):

$css_class = 'even'; 
foreach($listPertanyaanBlokIII as $group => $array){ 
     $css_class = $css_class == 'even' ? 'odd' : 'even'; 
     echo $group.'<br>'; 
      foreach($array as $val){ 
      echo ' ---- '.$val.' class='.$css_class.'<br>'; 
      } 
} 

输出,这同样是只是为了证明自己的理念:

plate 
---- plate 123 class=odd 
---- plate 456 class=odd 
glass 
---- glass 123 class=even 
---- glass 456 class=even 
0

什么你要找的是用于分组的tbody元素目的。你需要修改你的循环,让你可以将同一类型的所有产品放在同一个tbody中。一旦你做完了,你可以在tbody上做斑马条纹。

tbody:nth-child(odd) { 
    background: #CCC; 
} 

<table> 
    <tbody> 
     <tr> 
      <td>1</td> 
      <td>Plate</td> 
     </tr> 

     <tr> 
      <td>2</td> 
      <td>Plate</td> 
     </tr> 
    </tbody> 

    <tbody> 
     <tr> 
      <td>3</td> 
      <td>Glass</td> 
     </tr> 

     <tr> 
      <td>4</td> 
      <td>Glass</td> 
     </tr> 
    </tbody> 
</table> 

http://jsfiddle.net/V8xss/

我展示你怎么可能去有关修改环路回答另一个问题:Displaying table data column-wise in a while loop(虽然你将需要从tr改变插入标签tbody

相关问题