5

我需要将可配置产品的选项显示为带有“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 已经必须使所需值的方法。即使我不知道在隐藏输入上设置类“必填项”是否是个好主意。

请问你能帮帮我吗?任何形式的帮助或其他想法将不胜感激。

4

1 回答 1

0

这里有一个代码片段。太简单了=)!!

    <script type="text/javascript">
        function assignValue(idattribute,price,value){
            var sal = new String(value); //this value is what you are showing to the user in the div grid
            var disp = new String(idattribute);

            $('nameinputhidden').value=disp;
            $('advice-required-entry-attribute').fade();
                    $$('.nameinputhidden').each(
                     function(e){
                   e.removeClassName('active');
                      }
                      )
                    $(sal).addClassName('active');

    </script>

并且不要忘记将输入值设为隐藏。此输入值必须是您在网格上显示的属性。

希望这可以帮助。无论如何,如果我能帮助你,请告诉我!

问候!

于 2013-04-22T22:45:39.283 回答