自动获取Magento中自定义属性的选定下拉值

时间:2013-07-19 03:16:16

标签: php magento

我正在尝试使用

获取自定义下拉属性的选定值
echo $_product->getProductSize();

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

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

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

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

3 个答案:

答案 0 :(得分:16)

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

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

答案 1 :(得分: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++; 
}

注意:代码输出自定义选项&amp;他们的正如他们用于将产品添加到购物车时所需要的那样。
如果您只想获取选项值,可以删除选择(减少代码的复杂性。)

答案 2 :(得分:1)

你可以尝试下面的代码

<?php if ($_product->getData('attribute_name')): ?>
<p><?php echo nl2br($_product->getResource()->getAttribute('attribute_name')
->getFrontend()->getValue($_product)) ?>
</p>