脚本输出2列而不是1列

时间:2013-11-12 21:03:05

标签: php html mysql

以下脚本输出不同线路上产品的所有规格(在白色和灰色之间切换)。

我希望脚本输出规格2乘2.

所以而不是:

label - value 
label - value 
label - value

我想:

label - value    label - value 
label - value    label - value 
label - value    label - value

有谁知道我应该怎么做到这一点?

目前的代码是:

<?php
$color='grey';
$attributes = $_product->getAttributes();
foreach ($attributes as $attribute) {
    if ($attribute->getIsVisibleOnFront() and $attribute->getFrontend()->getValue($_product)) 
    {
    ?>
        <div class="row-<?php $color=($color=='grey')? 'white' : 'grey'; echo $color; ?>">
            <div class="name-detail">
                <?php echo $attribute->getFrontend()->getLabel($_product); ?>
            </div>
            <div class="description">
                <?php echo $attribute->getFrontend()->getValue($_product); ?>
            </div>
        </div>
    <?php
    }
}
?>

1 个答案:

答案 0 :(得分:0)

只要有一个计数器告诉你你是否在%2

这应该有用(没有经过测试,但足以明白这一点):

<?php
$color='grey';
$i = 0;
$attributes = $_product->getAttributes();
foreach ($attributes as $attribute) {
    if ($attribute->getIsVisibleOnFront() and $attribute->getFrontend()->getValue($_product)) 
    {
        if ($i % 2)
        {
?>
        <div class="row-<?php $color=($color=='grey')? 'white' : 'grey'; echo $color; ?>">
<?php
        }
?> 
            <div class="name-detail">
                <?php echo $attribute->getFrontend()->getLabel($_product); ?>
            </div>
            <div class="description">
                <?php echo $attribute->getFrontend()->getValue($_product); ?>
            </div>
<?php
        if (($i + 1) % 2)
        {
?>
        </div>
<?php
        }
        $i++;
    }
}
if (($i + 1) % 2)
{
?>
    </div>
<?php
}
?>

我试着坚持你的编码风格。

您也知道,您可以使用echo输出html,这样就可以这样做:

<?php
  $color='grey';
  $i = 0;
  $attributes = $_product->getAttributes();
  foreach ($attributes as $attribute) {
    if ($attribute->getIsVisibleOnFront() && $attribute->getFrontend()->getValue($_product)) {
      if ($i % 2)
        echo '<div class="row-' . (($color == 'grey') ? 'grey' : 'white') . '">';
      echo '<div class="name-detail">' . $attribute->getFrontend()->getLabel($_product) . '</div>';
      echo '<div class="description">' . $attribute->getFrontend()->getValue($_product) . '</div>';
      if (($i + 1) % 2)
        echo '</div>';
      $i++;
    }
  }
  if (($i + 1) % 2)
    echo '</div>';
?>