以下脚本输出不同线路上产品的所有规格(在白色和灰色之间切换)。
我希望脚本输出规格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
}
}
?>
答案 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>';
?>