您现在的位置是:首页 > 教程 > ecshop商城教程ecshop商城教程
通过AJAX方式动态更新ecshop购物车页面的商品数量的方法
张准辰2023-12-07 20:34:48ecshop商城教程已有人查阅
导读每次用户进入ecshop购物流程的时候当需要更改购物车里的商品数量的时候必须要手动点击更新按钮
每次用户进入ecshop购物流程的时候当需要更改购物车里的商品数量的时候必须要手动点击更新按钮,这是非常糟糕的用户体验,我们有必要去改进这一点。
以下是通过AJAX方式来动态更新ECShop购物车页面商品数量的解决办法 一、前端页面部分(flow.dwt) 在商品数量的input框添加对应的js函数
以下是通过AJAX方式来动态更新ECShop购物车页面商品数量的解决办法 一、前端页面部分(flow.dwt) 在商品数量的input框添加对应的js函数
<INPUT onblur=”changePrice(document.getElementById (‘goods_number_{$goods.rec_id}’).value,{$goods.rec_id})” name=”goods_number [{$goods.rec_id}]” id=”goods_number_{$goods.rec_id}” value=”{$goods.goods_number}” id=”ECS_FORMBUY”> 在文件最后添加一段js <script type=”text/javascript”> function changePrice(number,rec_id) { var attr = getSelectedAttributes(document.forms['ECS_FORMBUY']); var qty = document.forms['ECS_FORMBUY'].elements['number'].value; Ajax.call(‘flow.php’, ‘step=update_group_ cart&rec_id=’ + rec_id +’&number=’ + number, changePriceResponse, ‘GET’, ‘JSON’); } function changePriceResponse(res) { if (res.error > 0) { document.getElementById(‘sysmsg_error’).innerHTML = res.content; document.all.sysmsg_error.style.display=”; } else { if(document.all.sysmsg_error.style.display==”) { document.all.sysmsg_error.style.display=’none’; } document.getElementById(‘subtotal_’+res.rec_id).innerHTML = res.subtotal; document.getElementById(‘cart_amount’).innerHTML = res.cart_amount; } } </script> 二、在flow.php文件中插入对应的处理代码: elseif($_REQUEST['step'] == ‘update_group_cart’) { include_once(‘includes/cls_json.php’); $json = new JSON(); $result = array(‘error’ => ”, ‘content’ => ”); $rec_id = $_GET['rec_id']; $number = $_GET['number']; $group_buy = group_buy_info($_SESSION['extension_id'], $number); if(!is_numeric($number)) { $result['error'] = ’1′; $result['content'] =’请输入合法数量’; die($json->encode($result)); } if ($group_buy['restrict_amount'] > 0 && $number > ($group_buy['restrict_amount'] – $group_buy['valid_goods'])) { $result['error'] = ’1′; $restrict_amount = $group_buy['restrict_amount'] – $group_buy['valid_goods']; $result['content'] =’您最多可买’.$restrict_amount.’件’; die($json->encode($result)); } $sql = “UPDATE ” . $GLOBALS['ecs']->table(‘cart’) . ” SET goods_number = ‘$number’ WHERE rec_id = $rec_id”; $GLOBALS['db']->query($sql); $subtotal = $GLOBALS['db']->getONE(“select goods_price * goods_number AS subtotal from “.$GLOBALS['ecs']->table(‘cart’).” where rec_id = $rec_id”); $cart_amount = cart_amount(”,$_SESSION['flow_type']); $result['subtotal'] = price_format($subtotal, false); $result['cart_amount'] = price_format($cart_amount, false); $result['rec_id'] = $rec_id; die($json->encode($result)); } 还等什么?马上清空echsop的缓存刷新页面看看效果吧。
本文标签:
很赞哦! ()
相关文章
随机图文
-
ecshop邮编实现可以使用输入字母的方法
ecshop 默认情况下邮编只能填写数字,但是国外的很多城市邮编其实是数字和字母组合的,这个问题其实解决方法也很简单。 -
ecshop订单打印显示商品属性尺码规格的方法
ecshop订单打印无法显示商品属 前台商品属 ,前台商品详情都可以正常显示属 信息,但是打印订单和后台订单查询都无法显示属 解决教程。 -
ecshop首页收藏本站js代码兼容所有浏览器
加入收藏的按钮方法!大家发现传统的收藏本站按钮在360浏览器下面没有效果了,但是360浏览器用户群却非常之大。所以我们在网上找到一个兼容所有浏览器的收藏本站解决方案 -
ecshop商品详情页显示品牌LOGO的方法
ecshop商品详细页面的商品品牌默认是以文字形式显示的,能否改成以LOGO形式显示。当然可以,下面看教程。注:本教程以 ECSHOP2.7.2 + 官方默认模板 为例。
留言与评论 (共有 条评论) |