请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

ajax更新购物车数量

ajax更新购物车数量

ajax更新购物车数量

先打开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" class="inputBg" style="text-align:center " onblur="change_price({$goods.rec_id},{$goods.goods_id})"/><a href="javascript:;"  >+</a>

复制代码


然后在下一个</td>后加一段js代码
   
         
  • <script type="text/javascript" charset="utf-8">
             
  • function add_num(rec_id,goods_id)
             
  • {
             
  • document.getElementById("goods_number_"+rec_id+"").value++;
             

  •          
  • var number = document.getElementById("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.getElementById("goods_number_"+rec_id+"").value>1)
             
  • {
             
  • document.getElementById("goods_number_"+rec_id+"").value--;
             
  • }
             
  • var number = document.getElementById("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.getElementById("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.getElementById("goods_number_"+result.rec_id+"").value =result.number;
             
  • }
             
  • else
             
  • {
             

  •          
  • document.getElementById('subtotal_'+result.rec_id).innerHTML = result.subtotal;//商品总价
             
  • document.getElementById('cart_amount_desc').innerHTML = result.cart_amount_desc;//购物车商品总价说明
             
  • document.getElementById('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));
             
  • }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

    热门帖子
  • 精华
  • 新帖
快速回复 返回顶部 返回列表