通过AJAX方式动态更新ecshop购物车页面的商品数量

分  类: ecshop教程

统  计:264 次获取

创建时间: 2024-03-21 14:40:52

  • 详情介绍
13+年专注全栈开发,承接小程序开发,分销系统定制,网站建设、搬家、搭建,二次开发等一站服务,欢迎咨询
每次用户进入ecshop购物流程的时候当需要更改购物车里的商品数量的时候必须要手动点击更新按钮,这是非常糟糕的用户体验,我们有必要去改进这一点。以下是通过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的缓存刷新页面看看效果吧。
通过AJAX方式动态更新ecshop购物车页面的商品数量_ecshop教程 栏目文章由:源码庄整理发布,转载请注明来源。
来源地址:https://www.codenet.cc/article/details/322.html
本站资源未标注正版授权软件均为会员提供或网上搜集,版权归原作者所有,如需商业用途或转载请与原作者联系;
发布的文章及附件仅限用于学习和研究目的,请勿用于商业或违法用途!如有侵权,请及时联系我们!
《更多用户服务协议声明》
  • 波浪
  • 波浪
  • 波浪
  • 波浪