10

我正在尝试使用获取自定义下拉属性的选定值

echo $_product->getProductSize();

echo $_product->getAttributeText('product_size');

然后,我清除缓存并重新索引并重新加载我的页面。我尝试从下拉列表中选择一个值,但任何一个都返回任何内容。所以基本上,我的问题是,如何从自定义下拉属性中检索选定的值?我计划使用它根据所选值在我的产品页面上显示不同的内容。提前感谢您的任何帮助和建议。

另外:我试图在调用相同下拉列表的产品页面上调用它。

在尝试通过管理面板稍微使用属性后,我注意到我选择的值如何在页面上回显。但是,我希望能够在前端动态检索它。这可能吗?例如,在前端,客户选择选项B,然后我会显示与选项B相关的信息。然后如果他更改为选项D,那么信息将更改为选项D的信息。

4

3 回答 3

17
echo $_product->getAttributeText('product_size');

它应该可以工作,除非您的主题依赖于“在产品列表中使用”和“在前端的产品视图页面上可见”在“管理属性”中为您的属性从后端设置。另外检查您的属性代码是否不包含任何空格。虽然 magento 不允许您通过表单提交在属性代码中使用空格,但如果属性是通过编程方式或从 sql 查询创建的,那么它是可能的。否则,它不是您的代码或属性引起的问题。

于 2013-07-20T13:52:36.040 回答
3

参考这段代码,可能有用。
该代码获取所有自定义选项及其值

foreach ($_product->getOptions() as $value)
{
    echo "<br/><strong>".$value->getTitle()."</strong><br/>";
    $values = $value->getValues();// Getting Values if it has option values, case of select,dropdown,radio,multiselect
    ?>
    <select id = "<?php echo 'select_'.$value->getId() ?>" name = "<?php echo 'options['.$value->getId() .']'?>">
    <?php
    foreach ($values as $val)
        {
            echo "<option price = " . $val->getPrice(). " value = ".$val->getOptionTypeId() . ">" .$val->getTitle()."</option>";
        }
        ?>
    </select>
    <?php
    $i++; 
}

注意:代码输出自定义选项及其,就像它们用于将产品添加到购物车时一样。
如果您只想获取选项值(以降低代码的复杂性),则可以删除选择。

于 2013-07-22T12:58:04.080 回答
1

你可以试试下面的代码

<?php if ($_product->getData('attribute_name')): ?>
<p><?php echo nl2br($_product->getResource()->getAttribute('attribute_name')
->getFrontend()->getValue($_product)) ?>
</p>
于 2013-07-19T05:56:08.607 回答