PHP垂直交替单元格颜色
我试图显示一个表,其中显示了不同的会员包,并需要尝试让每列交替颜色,以分开包。我有交替电池的代码,但他们是水平的,而不是垂直的。请让我知道这是否可行,以及我的代码错误的地方,以垂直交替单元格。多谢各位PHP垂直交替单元格颜色,php,Php,我试图显示一个表,其中显示了不同的会员包,并需要尝试让每列交替颜色,以分开包。我有交替电池的代码,但他们是水平的,而不是垂直的。请让我知道这是否可行,以及我的代码错误的地方,以垂直交替单元格。多谢各位 <table width="100%" border="0" cellspacing="0"> <tr> <td> </td> <?php foreac
<table width="100%" border="0" cellspacing="0">
<tr>
<td> </td>
<?php
foreach((array) $membership_names as $name) { ?>
<td align="center" style="background:#ffffe4; padding:5px; border-top:1px solid #ccc; border-right:1px solid #fff; border-left:1px solid #fff;"><strong><?php echo $this->escape($name); ?></strong></td>
<?php } ?>
</tr>
<?php
$i = 1; // Our row counter
foreach((array) $memberships as $membership) {
if ($i % 2 != 0) # An odd row
$rowStyle = "background:#FFFFE4; border-bottom:1px solid #ccc; border-top:1px solid #fff; height:40px; padding:10px;";
else # An even row
$rowStyle = "background:#FFF4D8; border-bottom:1px solid #ccc; border-top:1px solid #fff; height:40px; padding:10px;";
?>
<tr>
<td align="left" style="<?php echo $rowStyle; ?>"><strong><?php echo $this->escape($membership['title']); ?>:</strong></td>
<?php foreach((array) $membership['values'] as $value) {
if ($i % 2 != 0) # An odd row
$rowStyle = "background:#FFFFE4; border-bottom:1px solid #ccc; border-top:1px solid #fff; height:40px; padding:10px;";
else # An even row
$rowStyle = "background:#FFF4D8; border-bottom:1px solid #ccc; border-top:1px solid #fff; height:40px; padding:10px;";
?>
<td align="center" style="<?php echo $rowStyle; ?>">
<?php if($value == 'yes') { ?>
<img src="<?php echo BASE_URL.TEMPLATE_PATH; ?>images/icon_checkmark.gif" />
<?php } elseif($value == '-') {?>
<img src="<?php echo BASE_URL.TEMPLATE_PATH; ?>images/icon_checkno.gif" />
<?php } elseif($value == '0') {?>
<img src="<?php echo BASE_URL.TEMPLATE_PATH; ?>images/icon_checkno.gif" />
<?php } else { ?>
<?php echo $this->escape($value); ?>
<?php } ?>
</td>
<?php } ?>
</tr>
<?php
$i++; # Increment our row counter
}
?>
<tr>
<td align="left" valign="top" style="background:#9C6C69; color: #FFFFE4; border-bottom:1px solid #ccc; border-top:1px solid #fff; font-weight:bold; height:40px; padding:10px;"> </td>
<?php foreach((array) $pricing as $price) { ?>
<td align="center" valign="top" style="background:#9C6C69; border-bottom:1px solid #ccc; border-top:1px solid #fff; color: #FFFFE4; height:40px; padding:10px;">
<?php foreach($price['pricing'] as $key=>$value) { ?>
<?php if(count($price['pricing']) > 1) { ?><p><strong><?php echo $lang['public_compare_option']; ?> <?php echo $key+1; ?></strong></p><?php } ?>
<?php if($value['label']) { ?>
<p style="font-size:11px;"><?php echo $this->escape($value['label']); ?></p>
<?php } else { ?>
<?php //echo $lang['public_compare_term']; ?>
<?php if($value['period_count']) { ?>
<p style="font-size:11px; font-weight:bold;"><?php echo $this->escape($value['period_count']); ?> <?php echo $this->escape($value['period']); ?></p>
<?php } else { ?>
<p><?php echo $lang['public_compare_lifetime']; ?></p>
<?php } ?>
<?php if($value['setup_price'] != '0.00') { ?>
<p><?php echo $lang['public_compare_setup']; ?>: <?php echo $this->escape(format_number_currency($value['setup_price'])); ?></p>
<?php } ?>
<?php //echo $lang['public_compare_price']; ?>
<?php if($value['price'] != '0.00') { ?>
<p style="border-bottom: 1px dashed #FFFFFF; border-top: 1px dashed #FFFFFF; font-size: 14px; font-weight: bold; margin-top: 2px; padding: 2px;">$<?php echo $this->escape($value['price']); ?></p>
<?php } else { ?>
<p style="border-bottom: 1px dashed #FFFFFF; border-top: 1px dashed #FFFFFF; font-size: 14px; font-weight: bold; margin-top: 2px; padding: 2px;"><?php echo $lang['public_compare_free']; ?></p>
<?php } ?>
<?php } ?>
<p><a href="<?php echo BASE_URL.MEMBERS_FOLDER; ?>user_orders_add_listing.php?pricing_id=<?php echo $value['id']; ?>" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" style="margin-top:3px;padding:5px;"><?php echo $lang['public_compare_order']; ?></a></p>
<?php } ?>
</td>
<?php } ?>
</tr>
</table>
您在两个嵌套循环中使用了两次$i
,这注定会失败。在第二个foreach
循环之前也尝试重置它。好的,让我们试试这个:
从foreach语句中删除(数组),您不需要它。还有,$i%2!=0,您不需要所有这些,只需使用$i%2,它要么是真的,要么是假的,因此如果($i%2)要么是真的,要么是假的,您就不需要了!=0不要有两个不同的$rowstyle,只需在CSS中设置其中的两个,并使用php short if来选择要使用哪一个,如下所示
($i %2 ? 'style1' : 'style2')
然后像这样把它放在你的表格单元格中:
<td style="($i %2 ? 'style1' : 'style2')">
这将根据您的$i是偶数还是奇数来交替样式。
您还需要确保在每行的开头将$i重置为0,因为您正在交替列颜色,所以您希望所有行都以0开头,以便它们正确对齐。您不需要跟踪带有$i的行,因为您不关心它们是什么颜色,只关心列,只要确保在每次启动新表行时将$i重置为0即可。您确实应该对这些列应用CSS类。不要像这样为每个单元格单独定义样式!是的,一旦我能在单元格垂直交替而不是水平交替的情况下工作,就会使用这个类。感谢您的建议。感谢您的反馈。我对PHP的深入了解不多,所以我试图获得一些帮助,帮助我如何使单元格垂直而不是水平地交替颜色。我只是不太理解PHP的逻辑,无法理解这一点。谢谢