我需要将可配置产品的选项显示为内部带有“a”的 div,让用户在选项中单击并选择它,而不是下拉列表。就像菜单(目标是显示鞋子尺码)。
正如许多人所知,Magento 使用 Json 响应来填充下拉菜单的选项。 (var spConfig = new Product.Config(getJsonConfig() ?>) 且该类位于 js/varien/product.js (Product.Config = Class.create() )。
然后,我所做的是编辑文件 template/catalog/product/view/type/options/configurable.phtml 并将原始行为替换为类似的内容。
'<?php
echo '
<ul class="super-attribute-select">';
$resultado = json_decode($this->getJsonConfig(), true);
$atributo=$resultado['attributes'][162]['options'];
foreach($atributo as $att){
echo '<li>';
echo '<a value="'.$att['id'].'" price="'.$att['price'].'" href="javascript:void()" onclick="return assignValue()">'.$att['label'].'</a>';
echo '</li>';
}
echo ' </ul>
<div class="clear"></div>';
?>'
这个简单的 mod 让我用 div 形成的小网格替换菜单。现在我正在尝试创建一个 Javascript 函数来模拟本机行为,但仅针对所选的选项(在本例中为鞋码)。据我了解,它通过表单发送选项值,所以我的想法是创建一个隐藏输入,然后在用户执行单击时通过 Javascript 函数分配值,如下所示:
'<script>
function assignValue(value){
//assign the value
document.getElementById('super_attribute[162]').value = value;
//mod the class of the selected item
this.addClassName("selected");
</script>'
我认为可能有必要创建一个函数或调用 magento 已经具有的方法来获取所需的值。即使我不知道在隐藏输入上设置类“required-entry”是否是一个好主意。
请问你能帮帮我吗?任何形式的帮助或其他想法将受到高度赞赏。