欢迎您光临10元资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!

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

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

  • 每次用户进入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购物车页面的商品数量

发表评论

售后服务:

  • 售后服务范围 1、商业模板使用范围内问题免费咨询
    2、源码安装、模板安装(一般 ¥200-1000)服务答疑仅限SVIP用户
    3、单价超过1000元的模板免费一次安装,需提供服务器信息。
    付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
    2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
    3、服务器环境配置(一般 ¥50-300)
    4、网站中毒处理(需额外付费,500元/次/质保三个月)
    售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
    免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 263795763@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系作者
';