ecshop增加产品属性和规格选择

2009-09-14 17:50 来源:www.chinab4c.com 作者:ecshop专家

1:在goods表里面增加属性。

 goods_color颜色图片

 goods_color_name颜色名称

 2:修改后台产品录入模块。

 <tr id="auto_thumb_1">
            <td class="label"> 材料图片:</td>
            <td id="auto_thumb_3">
              <input type="file" name="goods_color" size="35" />{if $goods.goods_color}
                <a href="goods.php?act=show_image&img_url={$goods.goods_color}" target="_blank"><img src="images/yes.gif" border="0" /></a>
              {else}
                <img src="images/no.gif" />
              {/if}
            
            </td>
          </tr>
     <tr id="auto_thumb_1">
            <td class="label"> 材料名称:</td>
            <td id="auto_thumb_3">
             <input type="text" name="goods_color_name" value="{$goods.goods_color_name}">
            </td>
          </tr>

3:后台goods.php程序中,增加以下程序,用于存储颜色和名称

 

 $goods_color = $image->upload_image($_FILES['goods_color'],'goods_color');
 $goods_color_name = !empty($_POST['goods_color_name']) ? $_POST['goods_color_name'] : '';

4:录入产品的时候,选择相关属性。

5:调整goods.php产品详细页面,相关产品的程序。

$arr[$row['goods_id']]['goods_name']   = $row['goods_name'];
  $arr[$row['goods_id']]['goods_color']   = $row['goods_color'];

6:修改产品详细页面模板

 <select name="spec_{$spec_key}" id="spec_{$spec_key}" onchange="changePrice();changeclass(this.name);">
        <option value="no_select">请选择尺寸</option>
                          <!-- {foreach from=$spec.values item=value key=key} -->
                          <option label="{$value.label}" value="{$value.id}">{$value.label} {if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if}{if $value.price neq 0}{$value.format_price}{/if}</option>
                          <!-- {/foreach} -->
                        </select>
                        <input type="hidden" name="spec_list" value="{$key}" />
      <script>
        function changeclass(){
          var n = "spec_"+{$spec_key};
         var k = {$spec_key};
         var obj=document.getElementById(n);
         
         for(i=0;i<obj.length;i++){
            if(obj[i].selected==true){
            document.getElementById('color_name').innerHTML ="已选择:{$goods.goods_color_name},"+obj[i].innerText;
            }
         }
         
       }

      </script>

7:修改addToCartResponse()函数

else if(result.error == 11){
  alert(result.message);
 }

用来控制购买的时候属性的选择。

8:调整增加购物车程序

 $goods = $json->decode($_POST['goods']);
    $ar = $goods->spec;
   if($ar[0] == 'no_select'){
   
    $result['error']   = 11;
    $result['goods_id'] = $goods->goods_id;
    $result['message'] ='请选择属性';

    die($json->encode($result));
   }

控制属性的选择。

来源:中国B4C电子商务