ajax 实现订单商品数量的增减及订单的删除进行异步更新界面
【转载】https://blog.csdn.net/luliuying_01/article/details/78177617?locationNum=8&fps=1
由于在做答辩项目,做到购物车订单就自己研究了一下ajax进行页面异步更新,简单的写如下,等更加深入了解再进行更新
jsp界面
<div id="content">
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="shopping">
<form action="" method="post" name="myform">
<tr>
<td class="title_1"><input id="allCheckBox" type="checkbox" value="" onclick="selectAll()" />全选</td>
<td class="title_2" colspan="2">店铺宝贝</td>
<td class="title_3">获积分</td>
<td class="title_4">单价(元)</td>
<td class="title_5">数量</td>
<td class="title_6">小计(元)</td>
<td class="title_7">操作</td>
</tr>
<tr>
<td colspan="8" class="line"></td>
</tr>
<c:forEach items="${list}" var="oc">
<tr>
<td colspan="8" class="shopInfo">
<a href="#">${oc.order.oid}</a> 卖家:<a href="#">${oc.order.userid.userid}</a> <img src="cart/images/taobao_relation.jpg" alt="relation" />
</td>
</tr>
<tr id="product1">
<td class="cart_td_1">
<input type="hidden" value="${oc.orecorderid}">
<input name="cartCheckBox" type="checkbox" value="product1" onclick="selectSingle()" />
</td>
<td class="cart_td_2"><img src="upload/${oc.goods.picture}" width="100px" height=60px alt="shopping"/></td>
<td class="cart_td_3"><a href="#">${oc.goods.gname}</a><br />
<br />
<td class="cart_td_4">5</td>
<td class="cart_td_5">${oc.goods.gprice}</td>
<td class="cart_td_6">
<input type="hidden" value="${oc.rnumber}">
<img src="cart/images/taobao_minus.jpg" alt="minus" onclick="changeMinusNum(this)" id="minus"/>
<input id="num_1" type="text" value="${oc.rnumber}" class="num_input" readonly="readonly"/>
<img src="cart/images/taobao_adding.jpg" alt="add" onclick="changeAddNum(this)" id="add"/></td>
<td class="cart_td_7"></td>
<td class="cart_td_8"><a href="javascript:;" onclick="deleteRow(this)">删除</a></td>
</tr>
</c:forEach>
<tr>
<td colspan="3"><a href="javascript:" onclick="deleteSelectRow()"><img src="cart/images/taobao_del.jpg" alt="delete"/></a></td>
<td colspan="5" class="shopend">商品总价(不含运费):<label id="total" class="yellow"></label> 元<br />
可获积分 <label class="yellow" id="integral"></label> 点<br />
<input name=" " type="image" src="cart/images/taobao_subtn.jpg" /></td>
</tr>
</form>
</table>
<div style="text-align:center;">
</div>
</div>
</body>
</html>
is界面
// JavaScript Document
/*增加所购商品的数量*/
function changeAddNum(add) {
var rnumber = $(add).prev().val();
rnumber++;
var orecorderid = $(add).parent().siblings(":eq(0)").children(":eq(0)").val();
$.ajax({
url : "OrderrecordServlet",
data : {
methods :"addNum",orecorderid:orecorderid,rnumber:rnumber,
},
success : function(result) {
if (result) {
$(add).prev().val(rnumber);
var preprice = parseInt($(add).parent().prev().html());
$(add).parent().next().html(preprice*rnumber);
$("#total").html(parseInt($("#total").html())+preprice);
}
}
});
}
/**
* 减少所购买商品的数量
*/
function changeMinusNum(minus)
{
var minusNum = $(minus).next().val();
if(minusNum>1){
minusNum--;
var orecorderid = $(minus).parent().siblings(":eq(0)").children(":eq(0)").val();
console.log(orecorderid);
$.ajax({
url:"OrderrecordServlet",
data:{methods :"minusNum",orecorderid:orecorderid,minusNum:minusNum},
success:function(result){
if(result){
$(minus).next().val(minusNum);
var preprice = parseInt($(minus).parent().prev().html());
$(minus).parent().next().html(preprice*minusNum);
$("#total").html(parseInt($("#total").html())-preprice);
}
}
});
}
}
/*
* function changeNum(numId,flag){numId表示对应商品数量的文本框ID,flag表示是增加还是减少商品数量 var
* numId=document.getElementById(numId); if(flag=="minus"){减少商品数量 if(numId.value<=1){
* alert("宝贝数量必须是大于0"); return false; } else{
* numId.value=parseInt(numId.value)-1; productCount(); } } else{flag为add,增加商品数量
* numId.value=parseInt(numId.value)+1; productCount(); } }
*/
/* 自动计算商品的总金额、总共节省的金额和积分 */
function productCount() {
var total = 0; // 商品金额总计
var integral = 0; // 可获商品积分
var point; // 每一行商品的单品积分
var price; // 每一行商品的单价
var number; // 每一行商品的数量
var subtotal; // 每一行商品的小计
/* 访问ID为shopping表格中所有的行数 */
var myTableTr = document.getElementById("shopping").getElementsByTagName(
"tr");
if (myTableTr.length > 0) {
for (var i = 1; i < myTableTr.length; i++) {/* 从1开始,第一行的标题不计算 */
if (myTableTr[i].getElementsByTagName("td").length > 2) { // 最后一行不计算
point = myTableTr[i].getElementsByTagName("td")[3].innerHTML;
price = myTableTr[i].getElementsByTagName("td")[4].innerHTML;
number = myTableTr[i].getElementsByTagName("td")[5]
.getElementsByTagName("input")[0].value;
integral += point * number;
total += price * number;
myTableTr[i].getElementsByTagName("td")[6].innerHTML = price
* number;
}
}
document.getElementById("total").innerHTML = total.toFixed(2);
document.getElementById("integral").innerHTML = integral;
}
}
window.onload = productCount;
/* 复选框全选或全不选效果 */
function selectAll() {
var oInput = document.getElementsByName("cartCheckBox");
for (var i = 0; i < oInput.length; i++) {
oInput[i].checked = document.getElementById("allCheckBox").checked;
}
}
/* 根据单个复选框的选择情况确定全选复选框是否被选中 */
function selectSingle() {
var k = 0;
var oInput = document.getElementsByName("cartCheckBox");
for (var i = 0; i < oInput.length; i++) {
if (oInput[i].checked == false) {
k = 1;
break;
}
}
if (k == 0) {
document.getElementById("allCheckBox").checked = true;
} else {
document.getElementById("allCheckBox").checked = false;
}
}
/* 删除单行商品 */
function deleteRow(rowId) {
var orecorderid = $(rowId).parent().siblings(":eq(0)").children(":eq(0)")
.val();
$.ajax({
url : "OrderrecordServlet",
data : {
methods : "delrow",
orecorderid : orecorderid
},
success : function(result) {
if (result) {
$(rowId).parent().parent().prev().remove();
$(rowId).parent().parent().remove();
$("#total").html((parseInt($("#total").html())-parseInt($(rowId).parent().prev().html())).toFixed(2));
}
}
});
}
ajax 实现订单商品数量的增减及订单的删除进行异步更新界面的更多相关文章
- 第八十四篇:Vue购物车(五) 商品数量的增减
好家伙, 1.商品数量的增减 我们把商品的数量增减独立出来,写成一个独立的组件Counter <template> <div class="number-container ...
- 根据查询出各地订单商品数量 group by
order订单表,orderprduct订单商品表,area地区表 SELECT (a1.Name+a2.Name+a3.Name) AS areanaem,orderArea.AreaId,orde ...
- 127_Power Pivot&Power BI DAX计算订单商品在库时间(延伸订单仓储费用)
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 前面已经写过一个先进先出的库龄案例,在业务发生又有这样一个需求:先进先出前提,需要按照订单计算每个商品在库时间, ...
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
转自: https://blog.csdn.net/eson_15/article/details/51487323 昨天把项目部署了一下,玩了玩,今天完善了一下购物车中修改商品数量就能局部 ...
- 22Mybatis_订单商品数据模型_多对多查询以及对多对多查询的总结
之前讲了一对一,一对多查询,这篇文章讲的是多对多. 先给出需求:查询用户及用户购买商品信息. 我们由之前的文章知道,这个需求是多对多的. 还是那个终止我们的mybatis所做的不管是之前的一对一还是一 ...
- ecshop 属性表(attribute)商品属性表(goods_attr)货品表(prduct) 商品数量的联系
ecshop 属性表(attribute)商品属性表(goods_attr)货品表(prduct) 商品数量的联系 一个商城的商品属性存放在属性表(attribute)里 ,每个商品对应的属性在goo ...
- 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变
查看本章节 查看作业目录 需求说明: 利用 jQuery 操作页面元素的方法,实现电商网站购物车页面商品数量的增加和减少操作,要求单项价格和总价随着数量的改变而改变 当用户单击"+" ...
- 21Mybatis_订单商品数据模型_一对多查询——resultMap方式
这篇文章延续订单商品数据模型,这张讲述的是一对多的查询.(用resultMap) 给出几张表的内容: User表:
- 19Mybatis_订单商品数据模型分析
这篇文章是对订单商品数据模型进行分析(会给出分析思路),有四张表.这篇文章是后续文章的基础,因为后续的文章要针对这个数据模型(四张表)进行一对一,一对多,多对多进行查询. 我们以后会碰到各种各样的数据 ...
随机推荐
- 二分匹配ZOJ3646
//题意:类比线代里:把矩阵中的U看作[1],是否满足一个满秩矩阵 //利用二分匹配就是 //每一行都有相对应的列: #include<iostream> #include<stri ...
- 鸟哥私房菜基础篇:Linux是什么习题
猫宁!!! 参考链接:http://cn.linux.vbird.org/linux_basic/0110whatislinux.php#ex 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-你在你的 ...
- 黑客攻防技术宝典web实战篇:利用信息泄露习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 当探查 SQL 注入漏洞时,如果请求以下 URL:https://wahh-app.com ...
- Beta版本冲刺第二天!
该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...
- SpringBoot | 读取配置文件信息
server.port=8081 #修改端口号 server.servlet.context-path= /SpringBoot #修改URL #自定义配置 tz.name = xiaoming tz ...
- 快速分页:jsp标签pager-taglib
一:简介 Pager-taglib,支持多种风格的分页显示.实际上它是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组 合,会形成多种不一样的分页页面,风格各异.它既 ...
- Suricata产生的数据存储目录
不多说,直接上干货! 我这里呢,分两种常用的Suricata. 一.源码编译安装的Suricata 这里不多说,大家可以去看我下面写的博客 使用 Suricata 进行入侵监控(一个简单小例子访问百度 ...
- angularjs <input>标签获取时间显示问题
一般的后台管理中,几乎每个管理后台都有设置新密码的功能,但是获取的时候为了好看,都有统一用一定的标签,比如input标签,ng-model来控制显示数据,但是在获取时间的时候用会显示错乱 代码为: & ...
- Git-远程操作
远程分支:远程跟踪分支remote branch是对远程分支状态的引用,是不能移动的,它会根据远程分支变化以及网络通信自动移动.Git服务器包含了远程分支master,在My Computer中的re ...
- MY $MYVIMRC
set nocompatiblesource $VIMRUNTIME/vimrc_example.vim"source $VIMRUNTIME/mswin.vim"behave m ...