分享

ECSHOP模板使用ajax更新购物车数量

 quasiceo 2014-05-04

ECSHOP模板使用ajax更新购物车数量

时间:2013-09-30来源:模板堂 作者:模板堂 文章热度: 116 ℃
?


先打开flow.dwt,找到
<!-- {if $goods.goods_id gt 0 && $goods.is_gift eq 0 && $goods.parent_id eq 0} 普通商品可修改数量 -->,把下面的input框里面的替换成

  1. <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" class="inputBg" 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代码

  1. <script type="text/javascript" charset="utf-8">
     
  2. function add_num(rec_id,goods_id)
     
  3. {
     
  4. document.getElementById("goods_number_"+rec_id+"").value++;
     

  5.  
  6. var number = document.getElementById("goods_number_"+rec_id+"").value;
     
  7. Ajax.call('flow.php', 'step=update_group_cart&rec_id=' + rec_id +'&number=' + number+'&goods_id=' + goods_id, changePriceResp**e, 'GET', 'JSON');
     

  8.  

  9.  
  10. }
     

  11.  
  12. function red_num(rec_id,goods_id)
     
  13. {
     
  14. if (document.getElementById("goods_number_"+rec_id+"").value>1)
     
  15. {
     
  16. document.getElementById("goods_number_"+rec_id+"").value--;
     
  17. }
     
  18. var number = document.getElementById("goods_number_"+rec_id+"").value;
     
  19. Ajax.call('flow.php', 'step=update_group_cart&rec_id=' + rec_id +'&number=' + number+'&goods_id=' + goods_id, changePriceResp**e, 'GET', 'JSON');
     

  20.  

  21.  
  22. }
     

  23.  
  24. function change_price(rec_id,goods_id){
     
  25. var number = document.getElementById("goods_number_"+rec_id+"").value;
     
  26. //alert(number);
     
  27. Ajax.call('flow.php','step=update_group_cart&rec_id=' + rec_id +'&number=' + number+'&goods_id=' + goods_id, changePriceResp**e, 'GET', 'JSON');
     
  28. }
     

  29.  
  30. function changePriceResp**e(result)
     
  31. {
     
  32. if(result.error == 1)
     
  33. {
     

  34.  
  35. alert(result.content);
     
  36. document.getElementById("goods_number_"+result.rec_id+"").value =result.number;
     
  37. }
     
  38. else
     
  39. {
     

  40.  
  41. document.getElementById('subtotal_'+result.rec_id).innerHTML = result.subtotal;//商品总价
     
  42. document.getElementById('cart_amount_desc').innerHTML = result.cart_amount_desc;//购物车商品总价说明
     
  43. document.getElementById('market_amount_desc').innerHTML = result.market_amount_desc;//购物车商品总市价说明
     

  44.  
  45. }
     

  46.  
  47. }
     
  48. </script>
复制代码



接着把下一行的

  1. <td align="right" bgcolor="#ffffff" >{$goods.subtotal}</td>
复制代码

替换为
 

  1. <td align="right" bgcolor="#ffffff" id="subtotal_{$goods.rec_id}">{$goods.subtotal}</td>
复制代码



找到{$shopping_money}和{$market_price_desc},分别替换为

  1. <span id="cart_amount_desc">{$shopping_money}</span>
复制代码

  1. <span id="market_amount_desc">{$market_price_desc}</span>
复制代码



然后打开flow.php,在elseif ($_REQUEST['step'] == 'c**ignee')上面加这一段代码。

  1. //二次开发,ajax更新购物车
     
  2. elseif($_REQUEST['step']=='update_group_cart')
     

  3.  
  4. include_once('includes/cls_json.php');
     
  5. $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => '');
     
  6. $json = new JSON;
     
  7. $rec_id = $_GET['rec_id'];
     
  8. $number = $_GET['number'];
     
  9. $goods_id = $_GET['goods_id'];
     
  10. $result['rec_id'] = $rec_id;
     

  11.  

  12.  

  13.  
  14. if ($GLOBALS['_CFG']['use_storage'] == 1)
     
  15. {
     
  16. $goods_number = $GLOBALS['db']->getOne("select goods_number from ".$GLOBALS['ecs']->table('goods')." where goods_id='$goods_id'");
     
  17. if($number>$goods_number)
     
  18. {
     
  19. $result['error'] = '1';
     
  20. $result['content'] ='对不起,您选择的数量超出库存您最多可购买'.$goods_number."件";
     
  21. $result['number']=$goods_number;
     
  22. die($json->encode($result));
     
  23. }
     

  24.  
  25. }
     
  26. $sql = "UPDATE " . $GLOBALS['ecs']->table('cart') . " SET goods_number = '$number' WHERE rec_id = $rec_id";
     
  27. $GLOBALS['db']->query($sql);
     

  28.  
  29. /* 取得商品列表,计算合计 */
     
  30. $cart_goods = get_cart_goods();
     

  31.  
  32. $subtotal = $GLOBALS['db']->getONE("select goods_price * goods_number AS subtotal from ".$GLOBALS['ecs']->table('cart')." where rec_id = $rec_id");
     
  33. $result['subtotal'] = price_format($subtotal, false);
     
  34. $result['cart_amount_desc'] = sprintf($_LANG['shopping_money'], $cart_goods['total']['goods_price']);
     
  35. $result['market_amount_desc'] = sprintf($_LANG['than_market_price'], $cart_goods['total']['market_price'], $cart_goods['total']['saving'], $cart_goods['total']['save_rate']
     
  36. );
     

  37.  
  38. die($json->encode($result));
     
  39. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多