Php Magento Frontpage中显示所有产品的下拉列表

Php Magento Frontpage中显示所有产品的下拉列表,php,javascript,magento,drop-down-menu,product,Php,Javascript,Magento,Drop Down Menu,Product,我有一个Magento网站,出售杂志订阅,大约1000种不同的滴度。我想创建一个非常简单的下拉菜单,在frontpage上预先填充所有产品。很像,只是我似乎不能用“名称”代替“制造商”和“产品名称” 一个例子是一个不同的网站出售杂志订阅以及右上角,左下角的搜索字段 有人能给我们提供一些代码来创建这样的下拉列表吗?试着把它放在模板文件中你想要的下拉列表中: <select> <?php $products = Mage::getResourceModel(

我有一个Magento网站,出售杂志订阅,大约1000种不同的滴度。我想创建一个非常简单的下拉菜单,在frontpage上预先填充所有产品。很像,只是我似乎不能用“名称”代替“制造商”和“产品名称”

一个例子是一个不同的网站出售杂志订阅以及右上角,左下角的搜索字段


有人能给我们提供一些代码来创建这样的下拉列表吗?

试着把它放在模板文件中你想要的下拉列表中:

<select>
    <?php
        $products = Mage::getResourceModel('catalog/product_collection')
            ->setStore(Mage::app()->getStore()->getId())
            ->addAttributeToFilter('status', array('eq' => '1'))
            ->addAttributeToFilter('type_id', array('eq' => 'simple'));
        foreach ($products as $prod_model) {
            $product = Mage::getModel('catalog/product')->load($prod_model->getId());
            echo "<option value=\"".$product->getId()."\">".$product->getName()."</option>";
        }
    ?>
</select>
它将只获取活动的简单产品,但您可以使用->addAttributeToFilter函数根据产品属性值添加其他过滤器


编辑:另外,如果你有很多产品,处理起来会花很长时间,如果你没有启用缓存,处理起来会花很长时间。不建议这样做。

查看您链接到的其他网站,下拉HTML如下所示,onselect属性中包含一小段JavaScript,用于导航到所选产品的URL:

<select ... onchange="window.location.href = this.value">
  <option>Select a product</option>
  <option value="/path-to-foo">Foo</option>
  <option value="/path-to-bar">Bar</option>
</select>

如果$product是调用Mage::getModel的结果。。。然后调用$product->getUrlPath应该返回产品的路径

谢谢。。。。但你是对的,加载它们需要很长时间。但当打开缓存时,它似乎工作得相当好。还有几件事要做:1。它还将显示不可见的产品。我添加了,但没有完成工作:->addAttributeToFilter'visibility',array'eq'=>'Catalog,search'2。在选择产品时,它不会引导您找到它。它现在只显示名称3。如何使用文本放置第一个选择,如“选择标题”。@Mike,我建议您查看负责产品列表“正常”感觉的源代码,例如这个小宝石,Mage::getSingleton'catalog/product_status'->addVisibleFilterToCollection$collection;在我的头顶上,可见性可以设置为0、1、2或3。如果您想让下拉列表做一些事情,您需要将某种JavaScript附加到它上。如果你想放一个空白选项,请在第一个select标记之后,在PHPThanks发条机极客之前添加PLESE select,这看起来很方便。我还没有深入研究Magento目录,所以我将在周一上班时浏览一下目录/图层。再见!祝大家新年快乐。可见性设置对我来说非常有用。有人能帮我了解最后一个细节吗?JavaScript部分,在这里,当我选择一个产品页面并添加一个顶部选择时,我可以将人们引导到productpage,并使用文本选择ProductThank!这很有魅力。唯一剩下的是我想安排在字母顺序的所有产品的标题。现在,它们按ID的顺序排列。
echo "<option value=\"/" . $product->getUrlPath() . "\">";
echo $product->getName();
echo "</option>";