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>

请注意,“平台”字段是产品属性。而“名称”字段是产品名称。

无论我搜索什么,结果页面总是显示“使用以下搜索条件未找到任何项目”</p>

我可以看到正在传递两个参数:

结果/?name=罗技&平台;=5

即使我将其更改为以下内容,它也不起作用:

结果/?name=Logitech&platform;=XBox

将其更改为也不起作用:

结果/?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 回答