1

Magento に次の検索フォームがあります。

<form action="catalogsearch/advanced/result/" method="get" id="form-validate"> 

<input name="name" type="text" id="textfield" value="" /> 

<select name="platform" id="select"> 
      <option value='6'>XBox</option>
      <option value='5'>XBox 360</option>
</select>

<input type="submit" name="button" id="button" value="Search" /> 

</form>

「プラットフォーム」フィールドは製品属性であることに注意してください。「name」フィールドは製品名です。

何を検索しても、結果ページには常に「次の検索条件ではアイテムが見つかりませんでした」と表示されます</p>

2 つのパラメーターが渡されていることがわかります。

result/?name=ロジクール&platform;=5

これを次のように変更しても機能しません。

result/?name=ロジクール&platform;=XBox

これを次のように変更しても機能しません:

result/?name=ロジクール

製品は、私がチェックしたデータベースにあります。私は何を間違っていますか?

ありがとう

4

1 に答える 1

0

これは、属性がドロップダウン タイプの属性であるクライアントに使用したコードからの簡単なカット アンド ペーストです。

これが機能するには、属性コードが「プラットフォーム」である必要があります。

<?
 $product = Mage::getModel('catalog/product');
 $attributes = Mage::getResourceModel('eav/entity_attribute_collection')
         ->setEntityTypeFilter($product->getResource()->getTypeId())
         ->addFieldToFilter('attribute_code', 'platform');
 $attribute = $attributes->getFirstItem()->setEntity($product->getResource());
 $_platforms = $attribute->getSource()->getAllOptions(false);
 ?>
<select onchange="location.href='<?php echo $this->getUrl('catalogsearch/advanced/result') . '?platform[]='; ?>'+this.value;">
   <option selected><?php echo $this->__('Search by platform') ?></option>
    <?php foreach($_platforms as $_platform) : ?>
   <option value="<?php echo $_platform['value']; ?>"><?php echo $_platform['label']; ?></option>
    <?php endforeach; ?>
  </select>
于 2010-07-27T07:58:23.220 に答える