专注于高品质PHP技术等信息服务于一体 [STIEMAP] [RSS]

百度提供的广告:
PHP
当前位置:首页 > 技术文档 > PHP >  > 
ecshop自定义商品属性使用A美化后修改价格
ecshop 商品属性,默认使用 单选,多选 来实现,不美观,如果换成 A 标签或是其它 DIV 来排版,如何保证原来的功能可以使用。
就是点击,或调整数量以后,重新计算价格。

<!-- {* 判断属性是复选还是单选 *} -->
   <!-- {if $spec.attr_type eq 1} -->
    <!-- {if $cfg.goodsattr_style eq 1} -->
          <!-- {foreach from=$spec.values item=value key=key} -->
           <a href="javascript:;" class="{if $key eq 0}hover{/if}" onclick="set_style({$value.id},'spec_{$spec_key}',this)">{$value.label}</a>
            {if $key eq 0}
                  <input type="hidden" id="spec_{$spec_key}" name="spec_{$spec_key}" value="{$value.id}" />
               {/if}
 <!-- {/foreach} -->

这里只做 对 单选 修改的演示。 这里换成了 A , 加了一个 onclick事件。 当点击的时候,去修改 hidden 隐藏的值。

function set_style(val, spec, dom)
{
    $(dom).parent().find("a").removeClass();
    $(dom).addClass("hover");
    document.getElementById(spec).value = val;
    changePrice();
}

getSelectedAttributes 事件需要能支持 hidden ,所以要修改一下主要核心代码。

换成如下的
if (prefix == 'spec_' &&
      (formBuy.elements[i].type == 'hidden'))

修改完毕了。 这样 加入购物车之后的功能也是正常的。