3

階層化されたナビゲーション属性値を表示するためにドロップダウンを使用しています。価格、サイズ、色の 3 つのフィルターがあります。これが私がやろうとしていることです: 1.階層化されたナビゲーション フィルターのドロップダウンを取得します。2. 最初のオプションとして表示される属性ラベル/名前を取得します。現在、私のコードは、各ドロップダウンにデフォルトの「オプションを選択」値を設定しています。これを「価格を選択」、「サイズを選択」、「色を選択」などに置き換えたいと考えています。template/catalog/layer/filter.phtml の現在のコードは次のとおりです。ドロップダウンは機能しますが、「オプションを選択してください」ではなく属性ラベルを取得することに行き詰まっています

<select onchange="setLocation(this.value)">
<option value='' disabled selected style='display:none;'>Choose an Option</option>
</option> 
<?php foreach ($this->getItems() as $_item): ?>
<option
    <?php if ($_item->getCount() > 0): ?>
    value="<?php echo $this->urlEscape($_item->getUrl()) ?>"><?php echo $_item->getLabel() ?>
    <?php else: echo '>' . $_item->getLabel() ?>
    <?php endif; ?>
    (<?php echo $_item->getCount() ?>)
</option>

4

1 に答える 1

2

このコードを試してください。すべてのブラウザでテストされています。

<select onchange="setLocation(this.value)">
<?php $count = 0; ?>
 <?php foreach ($this->getItems() as $_item): ?> 
 <?php $count++; ?>
 <?php if($count == 1): ?>
<option value='' disabled selected style='display:none;'>Choose <?php echo $attribute_code = $_item->getFilter()->getName();?> </option> 
<?php endif; ?>
<option <?php if ($_item->getCount() > 0): ?> value="<?php echo $this->urlEscape($_item->getUrl()) ?>">
<?php echo $_item->getLabel() ?> <?php else: echo '>' . $_item->getLabel() ?> <?php endif; ?> (<?php echo $_item->getCount() ?>) </option>
<?php endforeach; ?> 
</select>
于 2012-09-12T13:41:04.170 に答える