ECShop商品详细页 实现尺码颜色关联显示库存数量

效果如下:

要开模板文件 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

时间: 2024-12-15 15:36:17

ECShop商品详细页 实现尺码颜色关联显示库存数量的相关文章

ECshop 怎样修改商品详细页的“浏览次数”

怎样修改商品详细页的“浏览次数” 最好可以修改为成倍增加的,比如客户浏览了一次,显示的是20次. 修改 goods.php  文件的下面这行代码即可 $db->query('UPDATE ' . $ecs->table('goods') . " SET click_count = click_count + 1 WHERE goods_id = '$_REQUEST[id]'"); 将 1 修改成你想增加的数字 即可

Ecshop商品详情页显示当前会员等级价格

会员登录状态下,在ECSHOP商品详情页的本店售价中显示当前登录会员对应的等级价格,在未登录状态下,则还默认显示原来的本店售价. 解决方法: 这个需要修改ECSHOP程序代码来实现. 打开文件 /includes/lib_goods.php 将 $row['shop_price_formated'] = price_format($row['shop_price']); 修改为 $row['shop_price_formated'] = $_SESSION[user_rank] ? price_

让ECSHOP商品列表页和商品详细页分类树跟首页一样

如何让商品列表页或商品详情页的分类树都跟首页一样,也是显示全部所有的分类呢?修改方法:1.商品列表页修改方法:打开category.php 文件将$smarty->assign('categories',       get_categories_tree($cat_id));修改为$smarty->assign('categories',       get_categories_tree());2.商品详情页修改方法:将$smarty->assign('categories',   

在ecshop商品详情页显示供货商

好久没写文章了,隐约记得前几天有人问到这个问题:[如何在ecshop商品详情页面显示该商品的供货商?] 今天有时间整理下,分享给大家. 注:以下修改适用于ecshop2.7.2,其他版本未做测试. 1). 首先需要修改程序文件,将供货商读取出来,然后赋值给模板 打开文件 /goos.php, 在 $smarty->assign('goods', $goods); 上边增加以下代码 if($goods['suppliers_id']) { $goods['suppliers_name']=$db-

ECSHOP 商品详情页购买数量 添加加减按钮

<input name="number" type="text" id="number" value="1" size="4" onblur="changePrice()" style="border:1px solid #ccc; "/> 修改为 <span class="goods_cut" _src="images

在ECSHOP商品列表页和搜索页面,最后出现空商品的解决办法

有客户购买了我们的ecshop模板后,自己做了大量的修改和改动,后来出现了商品列表页面和搜索页面出现了多一个商品的问题.没有商品数据,但是多显示了一个商品的样式.下面就由我们68ecshop为大家解决一下这个问题吧!解决的方法如下:<!– {if $goods.goods_id} –> <!– {/if} –>代码框起来即可解决.

如何在ecshop商品详情页显示供货商信息

以下范例以ecshop2.7.2原型做为修改: 1.首先需要修改程序文件,将供货商读取出来,然后赋值给模板, 打开文件 /goos.php, 在 $smarty->assign('goods',              $goods); 上边增加以下代码 if($goods['suppliers_id']) { $goods['suppliers_name']=$db->getOne("select suppliers_name from " .$ecs->tabl

ecshop商品列表页,循环显示当前分类的二级分类以及分类下的商品

1.includes\lib_goods.php,在最末尾添加几个function /** * 获得指定分类下的子分类 * * @access public * @param integer $cat_id 分类编号 * @return array */ function get_children_tree($cat_id) { if ($cat_id >0 ) { $sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('categor

ecshop商品详细描述调用商品相册代码

该修改方法让用户体验更好,特别是ecshop建站的用户产品描叙文字不多的朋友,直接让相册图显示在产品描述里.免去除在后台添加了 <div style="text-align:center"> <!-- {foreach from=$pictures item=picture name=picture}--> <img src="{$picture.img_url}" /> <!--{/foreach}--> </