ECShop商品詳細頁 實現尺碼顏色關聯顯示庫存數量

weixin_34391854發表於2015-05-19

效果如下:

 

要開模板檔案 goods.dwt  把選擇尺碼跟顏色的程式碼替換成如下,(不同模板程式碼可能不一樣,對照去替換)

<!-- {foreach from=$spec.values item=value key=key} -->

<a {if $key eq 0}class="cattsel"{/if} onclick="changeAtt(this,{$value.id},{$goods.goods_id})" href="javascript:;" name="{$value.id}" title="[{if $value.price gt 0}{$lang.plus}{elseif $value.price lt 0}{$lang.minus}{/if} {$value.format_price|abs}]">{$value.label}<input style="display:none" id="spec_value_{$value.id}" type="radio" name="spec_{$spec_key}" value="{$value.id}" {if $key eq 0}checked{/if} /></a>

<!-- {/foreach} -->

 

在要顯視庫存的地方放置以下程式碼

<font style=" color:#CCCCCC;">(庫存:<font id="shows_number">{$goods.goods_number} {$goods.measure_unit}</font></font>


最後在JS程式碼裡面新增以下JS 程式碼

function changeAtt(t,a,goods_id) {
t.lastChild.checked='checked';
for (var i = 0; i<t.parentNode.childNodes.length;i++) {
if (t.parentNode.childNodes[i].className == 'cattsel') {
t.parentNode.childNodes[i].className = '';
}
}

t.className = "cattsel";
var formBuy = document.forms['ECS_FORMBUY'];
spec_arr = getSelectedAttributes(formBuy);
Ajax.call('goods.php?act=get_products_info', 'id=' + spec_arr+ '&goods_id=' + goods_id, shows_number, 'GET', 'JSON');
changePrice();
}
function shows_number(result)
{
if(result.product_number !=undefined)
{
$('shows_number').innerHTML = result.product_number+'件';
}
else
{
$('shows_number').innerHTML = '未設定'
}
}

 

再開啟程式檔案 goods.php 在70行左右新增程式碼

if (!empty($_REQUEST['act']) && $_REQUEST['act'] == 'get_products_info')
{
include('includes/cls_json.php');

$json = new JSON;
// $res = array('err_msg' => '', 'result' => '', 'qty' => 1);

$spce_id = $_GET['id'];
$goods_id = $_GET['goods_id'];
$row = get_products_info($goods_id,explode(",",$spce_id));
//$res = array('err_msg'=>$goods_id,'id'=>$spce_id);
die($json->encode($row));

}


現在就可以了,到後臺清除下快取試試。

 

如果想實現選擇打勾的效果,參閱這篇 http://www.cnblogs.com/wangblognet/archive/2013/04/11/3014112.html

 

相關文章