修改文件:
1. flow.dwt 模板,
2. flow.php
首先
第一步 :
修改购物车模板:
添加 数量减少/增加 按钮(这里用的span),input文本框按照下边参数设置好。
1<div class="zz fl"> 2 <span onclick="red_num({$goods.rec_id},{$goods.goods_id});">-</span> 3 <input type="text" name="goods_number[{$goods.rec_id}]" class="input2" value="{$goods.goods_number}" id="goods_number_{$goods.rec_id}" onchange="change_price({$goods.rec_id},{$goods.goods_id})" /> 4 <span onclick="add_num({$goods.rec_id},{$goods.goods_id})">+</span> 5</div>
第二步:
模板文件添加JS
1<script type="text/javascript"> 2 function add_num(rec_id,goods_id) 3 { 4 document.getElementById("goods_number_"+rec_id+"").value++; 5 var number = document.getElementById("goods_number_"+rec_id+"").value++; 6 7 Ajax.call('flow.php', 'step=update_group_cart&rec_id=' + rec_id+'&number=' + number+'&goods_id=' + goods_id, changePriceRespone, 'GET', 'JSON'); 8 } 9 function red_num(rec_id,goods_id) 10 { 11 if (document.getElementById("goods_number_"+rec_id+"").value>1) 12 { 13 document.getElementById("goods_number_"+rec_id+"").value--; 14 } 15 var number = document.getElementById("goods_number_"+rec_id+"").value; 16 Ajax.call('flow.php', 'step=update_group_cart&rec_id=' + rec_id+'&number=' + number+'&goods_id=' + goods_id, changePriceRespone, 'GET', 'JSON'); 17 } 18 function change_price(rec_id,goods_id) 19 { 20 var number = document.getElementById("goods_number_"+rec_id+"").value; 21 Ajax.call('flow.php','step=update_group_cart&rec_id=' + rec_id+'&number=' + number+'&goods_id=' + goods_id, changePriceRespone, 'GET', 'JSON'); 22 } 23 function changePriceRespone(result) 24 { 25 if(result.error == 1) 26 { 27 alert(result.content); 28 document.getElementById("goods_number_"+result.rec_id+"").value = result.number; 29 }else{ 30 31 document.getElementById('subtotal_'+result.rec_id).innerHTML = result.subtotal;//商品总价 32 document.getElementById('cart_amount_desc').innerHTML = result.cart_amount_desc;//购物车商品总价说明 33 document.getElementById('market_amount_desc').innerHTML = result.market_amount_desc;//购物车商品总市价说明 34 } 35 } 36 </script>
顺便模板文件数量、价格计算添加ID
1<span id="subtotal_{$goods.rec_id}">{$goods.subtotal}</span> 2 3<span id="cart_amount_desc">{$shopping_money}</span> 4 5<span id="market_amount_desc">{$market_price_desc}</span>
第三步:
修改php文件
搜索:$_REQUEST['step'] == 'consignee' 在上方添加
1elseif($_REQUEST['step']=='update_group_cart') 2{ 3 //2016-05-24 cart_update 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 if ($GLOBALS['_CFG']['use_storage'] == 1) 12 { 13 $goods_number = $GLOBALS['db']->getOne("select goods_number from ".$GLOBALS['ecs']->table('goods')." where goods_id='$goods_id'"); 14 if($number>$goods_number) 15 { 16 $result['error'] = '1'; 17 $result['content'] ='对不起,您选择的数量超出库存您最多可购买'.$goods_number."件"; 18 $result['number']=$goods_number; 19 die($json->encode($result)); 20 } 21 } 22 $sql = "UPDATE " . $GLOBALS['ecs']->table('cart') . " SET goods_number = '$number' WHERE rec_id = $rec_id"; 23 $GLOBALS['db']->query($sql); 24 /* 取得商品列表,计算合计 */ 25 $cart_goods = get_cart_goods(); 26 $subtotal = $GLOBALS['db']->getONE("select goods_price * goods_number AS subtotal from ".$GLOBALS['ecs']->table('cart')." where rec_id = $rec_id"); 27 $result['subtotal'] = price_format($subtotal, false); 28 $result['cart_amount_desc'] = sprintf($_LANG['shopping_money'],$cart_goods['total']['goods_price']); 29 $result['market_amount_desc'] = sprintf($_LANG['than_market_price'],$cart_goods['total']['market_price'],$cart_goods['total']['saving'],$cart_goods['total']['save_rate']); 30 31 die($json->encode($result)); 32}
到这里完成Ajax异步数量增减!!!