我很难绕过如何做到这一点...我有一个选择菜单我希望显示为默认值,如果某些商品出现在购物车中则会显示不同的菜单。
所以说我卖狗和车。在购物车中我选择了其中一个。如果购物车中有任何车辆,我想要一个选择菜单出现。但如果购物车或猫中有任何狗,我想要一个不同的选择,出现不同的选项。所以car_select将是默认的,如果购物车中有任何东西......(我卖了很多东西)但是如果狗出现在购物车中,那么dog_select将取代它。
现在写的方式。默认是最后一件事,这就是显示的内容。 (见我的评论)
所以代码:
<?php
foreach($this->rows as $i => $row){
if (strstr('dogs',$row->dates)) {
$mydates = 'dogs';
} else {$mydates='default';}
//echo $row->dates; this spits out the correct values dogcar
}
//echo $mydates; with a dog and a car in the cart this returns default
//below functions i believe but i think the above is faulty
?>
<?php
if ($mydates =='dogs'){
//do something here;} else {
$type = $this->type;
foreach($this->extraFields[$type] as $fieldName => $oneExtraField) {
if ($fieldName != 'pickupdate-rosh'){; ?>
<tr class="hikashop_checkout_<?php echo $fieldName;?>_line">
<td class="key">
<?php echo $this->fieldsClass->getFieldName($oneExtraField);?>
</td>
<td>
<?php
echo $this->fieldsClass->display($oneExtraField,$this->$type->$fieldName,'data['.$type.']['.$fieldName.']');
?>
</td>
</tr>
<?php } ?>
<?php } ?>
<?php } ?>
我想总是返回car_select,除非车内有狗或猫等。 {编辑:我刚刚意识到这不是用于查找字符串的正确函数。}
答案 0 :(得分:2)
看起来你正在设置$mydates
,然后覆盖它(可能)。这是因为您为foreach
循环的所有迭代设置了一个变量到一个结果,最后一次迭代将是最终变量值。
因此,将$mydates
设置为默认值,然后在条件合适时更改它。
$mydates='default';
foreach($this->rows as $i => $row){
if (strstr('dogs',$row->dates)) {
$mydates = 'dogs';
}
//echo $row->dates; this spits out the correct values dogcar
}