2010-07-26 67 views
1

我在Magento以下搜索表單:如何發送參數到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> 

請注意,「平臺」字段是產品屬性。而「名稱」字段是產品名稱。

不管我怎麼搜索,結果頁面總是說「使用下面的搜索條件沒有產品找到」

我可以看到兩個參數被傳遞:

結果/名稱=羅技與平臺= 5

即使我更改爲以下,這是行不通的:?

結果/名稱=羅技和平臺; =的Xbox

改變這不工作之一:?

結果/名稱=羅技

該產品是有數據庫我已檢查。我究竟做錯了什麼?

感謝

回答

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> 
+0

謝謝,我已經知道了。剛將name =「name」改爲name =「q」,它就起作用了。 可能是其他一些更改,但現在可以使用。 – Ali 2010-07-28 03:38:31

+0

好的。 「q」用於標準搜索(不是高級),因此不允許您使用精確的屬性。 ie:如果您銷售的是帶有不同操作系統的計算機,並且希望根據操作系統執行搜索,那麼如果您使用「q」,則結果將列出查詢中提到該字符串的所有產品(比如說Ubuntu)。因此,如果您還銷售鍵盤並在其描述中包含「與Ubuntu兼容」之類的內容,則您的搜索結果也會列出鍵盤。而如果您使用「平臺」屬性使用高級搜索方法,則不會列出鍵盤。 – 2010-07-28 07:08:36