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

来源:互联网 发布:前端页面如何优化 编辑:程序博客网 时间:2024/04/30 16:00
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的subTotalcart.setTotal(cart.getTotal() - ci.getSubTotal());ci.setBuyNum(quantity);ci.setSubTotal(ci.getBuyNum() * ci.getProduct().getShop_price());// 加上ci的subTotalcart.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" oninput="update(${carItem.product.pid})"></td> 
<td width="15%"><span class="subtotal" id="${carItem.product.pid}">¥${carItem.subTotal}</span></td>修改数量的同时自动修改总计价钱


阅读全文
0 0
原创粉丝点击