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_订单商品数据模型分析
这篇文章是对订单商品数据模型进行分析(会给出分析思路),有四张表.这篇文章是后续文章的基础,因为后续的文章要针对这个数据模型(四张表)进行一对一,一对多,多对多进行查询. 我们以后会碰到各种各样的数据 ...
随机推荐
- oracle 查询用户权限
查询用户和权限 select object_name,created from user_objects; 受权 grant select any table,create table,create ...
- c++ 头文件路径选择
单文件引用头文件./ 当前目录 ../ 父级目录 / 根目录 多文件引用头文件多文件引用头文件 定义单独放在cpp文件里面 ,声明放在().h)里面
- AtCoder Grand Contest 015 C - Nuske vs Phantom Thnook
题目传送门:https://agc015.contest.atcoder.jp/tasks/agc015_c 题目大意: 现有一个\(N×M\)的矩阵\(S\),若\(S_{i,j}=1\),则该处为 ...
- 【Helvetic Coding Contest 2018】B2. Maximum Control (medium)
Description 传送门(翻译就别想了,本人英语太垃圾) Solution 设ans[i]为设置i个船时能控制的最多星球数(看到这你可能因为是dp,然而我可以很负责地告诉你是假的) 首先一个显然 ...
- matplotlib 绘图实例01:正弦余弦曲线
该讲的实例结果如下图所示: 第01步:导入模块,并设置显示中文和负号的属性: import matplotlib.pyplot as plt import numpy as np plt.rcPara ...
- jquery 根据文内内容获取dom
$("table tr td:contains(5)")
- PHP的知识点总结1
PHP 基础知识总结 2015-06-03 分类: 编程技术 PHP 代表 PHP: Hypertext Preprocessor PHP 文件可包含文本.HTML.JavaScript代码和 P ...
- 2019/05/11 Java内存结构
1. 类加载子系统:负责从文件系统或者网络加载Class信息,加载的信息存放在一块称之方法区的内存空间. 2. 方法区:就是存放类的信息.常量信息.常量池信息.包括字符串字面量和数字常量等. 3. ...
- 搭建SSM框架(聚合项目)
parents 父工程 pom base用户权限 jar wms业务 jar app帮助管理 war1. parents的pom.xml文件 1.1 maven servlet3.1.0 1.2 ...
- html制作简单框架网页二 实现自己的影音驿站 操作步骤及源文件下载 (可播放mp4、avi、mpg、asx、swf各种文件的视频播放代码)
新增视频播放功能如下图: 左侧网页left.html代码如下: <meta charset="utf-8"> <body style="backgrou ...