我正在尝试使用
获取自定义下拉属性的选定值echo $_product->getProductSize();
和
echo $_product->getAttributeText('product_size');
然后,我清除缓存并重新索引并重新加载我的页面。我尝试从下拉列表中选择一个值,但任何一个都返回任何值。基本上,我的问题是,如何从自定义下拉属性中检索所选值?我打算使用它在我的产品页面上显示不同的内容,具体取决于所选的值。提前感谢您的任何帮助和建议。
另外:我正在尝试在调用相同下拉列表的产品页面上调用它。
尝试通过管理面板稍微使用属性后,我注意到我选择的值如何在页面上回显。但是,我希望能够在前端动态检索它。这可能吗?例如,在前端,客户选择选项B,然后我将显示与选项B相关的信息。然后,如果他更改为选项D,则信息将更改为选项D的信息。
答案 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>