手机网上商城-项目经验总结(十一)-修改购物车商品数量

11.前台修改购物车商品的数量

public void updateItemAjax(HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		Cart cart = (Cart) request.getSession().getAttribute("cart");
		Map<String, CartItem> map = cart.getCartItems();
		String pid = request.getParameter("pid");
		int quantity = Integer.parseInt(request.getParameter("quantity"));
		CartItem ci = map.get(pid);
		// 移除ci的subTotal
		cart.setTotal(cart.getTotal() - ci.getSubTotal());
		ci.setBuyNum(quantity);
		ci.setSubTotal(ci.getBuyNum() * ci.getProduct().getShop_price());
		// 加上ci的subTotal
		cart.setTotal(cart.getTotal() + ci.getSubTotal());
		String jsonStr = "{'subTotal':"+ci.getSubTotal()+",'total':"+cart.getTotal()+"}";
		System.out.println(jsonStr);
		response.getWriter().println(jsonStr);
	}
前台代码:
<script type="text/javascript">
	function deleteItem(pid){
		location.href = "${pageContext.request.contextPath}/product?method=deleteItem&&pid="+pid;
	}
	function updateItem(pid){
		var quantity = document.getElementById("quantity").value;
		location.href = "${pageContext.request.contextPath}/product?method=updateItem&&pid="+pid+"&&quantity="+quantity;
	}
	function update(pid){
		var quantity = $("#"+pid+"quantity").val();
		if (quantity == ""){
			$("#"+pid+"quantity").val(1);
			quantity = 1;
		}
		$.ajax({
			url: "${pageContext.request.contextPath}/product?method=updateItemAjax",
			data:{"pid":pid,"quantity":quantity},
			type:"post",
			dataType:"json",
			success:function(data){
				$("#"+pid).text("¥"+data.subTotal);
				$("#total").text("¥"+data.total+"元");
			},
			error:function(e){
				alert(e.status);
			}
		});
	}
</script>
注意:
当存在多个商品时,需要区分商品对应的pid
<td width="10%"><input type="text" name="quantity" value="${carItem.buyNum}" maxlength="4" id="${carItem.product.pid}quantity" 
size="10" οninput="update(${carItem.product.pid})"></td> 
<td width="15%"><span class="subtotal" id="${carItem.product.pid}">¥${carItem.subTotal}</span></td>
修改数量的同时自动修改总计价钱


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值