您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop实现ajax无刷新更新购物车的实例代码
卢帆新2023-11-14Ecshop商城教程已有人查阅
导读先打开flow.dwt,找到,把下面的input框里面的替换成,然后在下一个后加一段js代码,找到{$shopping_money}和{$market_price_desc},分别替换为
先打开flow.dwt,找到
<!– {if $goods.goods_id gt 0 && $goods.is_gift eq 0 && $goods.parent_id eq 0} 普通商品可修改数量 –>
把下面的input框里面的替换成
<a href=”javascript:;” onclick=”red_num({$goods.rec_id},{$goods.goods_id});”> – </a><input type=”text” name=”goods_number[{$goods.rec_id}]” id=”goods_number_{$goods.rec_id}” value=”{$goods.goods_number}” size=”4″ style=”text-align:center ” onblur=”change_price({$goods.rec_id},{$goods.goods_id})”/><a href=”javascript:;” onclick=’add_num({$goods.rec_id},{$goods.goods_id})’ >+</a>
然后在下一个</td>后加一段js代码
<script type=”text/javascript” charset=”utf-8″>
function add_num(rec_id,goods_id)
{
document.getElementByIdx_xx_x_x(“goods_number_”+rec_id+”").value++;
var number = document.getElementByIdx_xx_x_x(“goods_number_”+rec_id+”").value;
Ajax.call(‘flow.php’, ‘step=update_group_cart&rec_id=’ + rec_id +’&number=’ + number+’&goods_id=’ + goods_id, changePriceResp**e, ‘GET’, ‘JSON’);
}
function red_num(rec_id,goods_id)
{
if (document.getElementByIdx_xx_x_x(“goods_number_”+rec_id+”").value>1)
{
document.getElementByIdx_xx_x_x(“goods_number_”+rec_id+”").value–;
}
var number = document.getElementByIdx_xx_x_x(“goods_number_”+rec_id+”").value;
Ajax.call(‘flow.php’, ‘step=update_group_cart&rec_id=’ + rec_id +’&number=’ + number+’&goods_id=’ + goods_id, changePriceResp**e, ‘GET’, ‘JSON’);
}
function change_price(rec_id,goods_id){
var number = document.getElementByIdx_xx_x_x(“goods_number_”+rec_id+”").value;
//alert(number);
Ajax.call(‘flow.php’,'step=update_group_cart&rec_id=’ + rec_id +’&number=’ + number+’&goods_id=’ + goods_id, changePriceResp**e, ‘GET’, ‘JSON’);
}
function changePriceResp**e(result)
{
if(result.error == 1)
{
alert(result.content);
document.getElementByIdx_xx_x_x(“goods_number_”+result.rec_id+”").value =result.number;
}
else
{
document.getElementByIdx_xx_x_x(‘subtotal_’+result.rec_id).innerHTML = result.subtotal;//商品总价
document.getElementByIdx_xx_x_x(‘cart_amount_desc’).innerHTML = result.cart_amount_desc;//购物车商品总价说明
document.getElementByIdx_xx_x_x(‘market_amount_desc’).innerHTML = result.market_amount_desc;//购物车商品总市价说明
}
}
</script>
接着把下一行的
<td align=”right” bgcolor=”#ffffff” >{$goods.subtotal}</td>
替换为
<td align=”right” bgcolor=”#ffffff” id=”subtotal_{$goods.rec_id}”>{$goods.subtotal}</td>
找到{$shopping_money}和{$market_price_desc},分别替换为
<span id=”cart_amount_desc”>{$shopping_money}</span>
和
<span id=”market_amount_desc”>{$market_price_desc}</span>
然后打开flow.php,在elseif ($_REQUEST['step'] == ‘c**ignee’)上面加这一段代码。
//二次开发,ajax更新购物车
elseif($_REQUEST['step']==’update_group_cart’)
{
include_once(‘includes/cls_json.php’);
$result = array(‘error’ => 0, ‘message’ => ”, ‘content’ => ”, ‘goods_id’ => ”);
$json = new JSON;
$rec_id = $_GET['rec_id'];
$number = $_GET['number'];
$goods_id = $_GET['goods_id'];
$result['rec_id'] = $rec_id;
if ($GLOBALS['_CFG']['use_storage'] == 1)
{
$goods_number = $GLOBALS['db']->getOne(“select goods_number from “.$GLOBALS['ecs']->table(‘goods’).” where goods_id=’$goods_id’”);
if($number>$goods_number)
{
$result['error'] = ’1′;
$result['content'] =’对不起,您选择的数量超出库存您最多可购买’.$goods_number.”件”;
$result['number']=$goods_number;
die($json->encode($result));
}
}
$sql = “UPDATE ” . $GLOBALS['ecs']->table(‘cart’) . ” SET goods_number = ‘$number’ WHERE rec_id = $rec_id”;
$GLOBALS['db']->query($sql);
$cart_goods = get_cart_goods();
$subtotal = $GLOBALS['db']->getONE(“select goods_price * goods_number AS subtotal from “.$GLOBALS['ecs']->table(‘cart’).” where rec_id = $rec_id”);
$result['subtotal'] = price_format($subtotal, false);
$result['cart_amount_desc'] = sprintf($_LANG['shopping_money'], $cart_goods['total']['goods_price']);
$result['market_amount_desc'] = sprintf($_LANG['than_market_price'], $cart_goods['total']['market_price'], $cart_goods['total']['saving'], $cart_goods['total']['save_rate']
);
die($json->encode($result));
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop去版权的方法步骤整理
该偏文章模板堂搜集总结,包括ecshop前台版权,ecshop后台版权,一个都不留,干干净净,推荐收藏一、去掉网页标题 Powered by ECShop打开includes/lib_main.php 文件
ecshop会员用户登录超时自动退出怎么办
ecshop存登录和购物车信息的时候用的是session,所以用cookie能够解决这个问题。1.购物车问题原因的产生是因为动态IP的SESSEION机制
ecshop商品怎么增加新字段
在ecshop二次开发工作中,经常碰到一些ECSHOP高级使用者问我,如何给商品增加一个新字段,来录入一些新的内容。下面我们结合ecshop后台“商品编辑”
ecshop订单列表增加商品检索的方法
近期ecshop网站做活动,统计商品订单量的时候没有按商品名搜索的选项,只能手动查询。这样效率很低下,而且容易出错。现在为列表增加一个简单的“按商品名搜索”表单项。
相关源码
-
pbootcms模板(PC+WAP)传媒广告影视公司网站源码基于PbootCMS内核开发的全自适应传媒文化网站模板,为影视公司、广告传媒企业打造,同时支持多行业快速适配。通过替换文字图片即可转换为其他行业网站查看源码 -
(自适应)绿色园林建筑花卉园艺艺术模板免费下载为景观设计及园艺企业打造的响应式网站框架,基于PbootCMS系统开发,帮助传统园林行业建立现代化数字展示平台。采用标准DIV+CSS前端架构,代码精简无冗余。查看源码 -
(PC+WAP)铝合金门窗定制pbootcms网站模板源码为铝合金门窗、定制门窗企业打造的高性能网站模板,基于PbootCMS开源内核开发,采用HTML5自适应架构,PC与手机端数据实时同步,覆盖全终端用户交互场景。查看源码 -
(PC+WAP)聚氨酯粉末涂料防腐耐用材料粘合剂网站源码下载为化工涂料企业设计的展示系统,集成产品技术参数库、颜色样板展示器和配方查询模块。支持粉末涂料、环氧树脂等多类产品分类展示查看源码 -
(自适应)酒店民宿客房旅馆pbootcms模板下载基于PbootCMS内核开发的酒店民宿行业专用网站模板,专注于为住宿服务企业提供专业高效的在线展示平台。该模板采用响应式设计结构,确保在不同终端设备上均能呈现优质浏览体验。查看源码 -
(PC+WAP)激光水幕音乐喷泉设备工程网站源码下载本模板基于PbootCMS系统开发,为喷泉设备工程类企业设计,特别适合展示音乐喷泉、激光水幕等水景艺术项目。采用响应式技术,确保各类工程案例在不同设备上都能呈现视觉效果。查看源码
| 分享笔记 (共有 篇笔记) |
