localstorage 实现购物车
utils = {
setParam : function (name,value){
var uid = $('#uid').val();
name = name + '_' + uid;
//console.log("set_" + name);
localStorage.setItem(name,value);
},
getParam : function(name){
var uid = $('#uid').val();
name = name + '_' + uid;
//console.log("get_" + name);
return localStorage.getItem(name);
}
};
product={
id:0,
name:"",
num:0,
vipprice:0.00,
saleprice:0.00,
imgurl:""
};
orderdetail={
username:"",
phone:"",
address:"",
zipcode:"",
totalNumber:0,
totalAmount:0.00
};
cart = {
//向购物车中添加商品
addproduct: function (product) {
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart == null || ShoppingCart == "") {
//第一次加入商品
var jsonstr = { "productlist": [{ "id": product.id, "name": product.name, "imgurl":product.imgurl, "num": product.num, "vipprice": product.vipprice, "saleprice": product.saleprice}], "totalNumber": product.num, "totalAmount": (product.vipprice * product.num) };
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
} else {
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
var result = false;
//查找购物车中是否有该商品
for (var i in productlist) {
if (productlist[i] != null){
if (productlist[i].id == product.id) {
productlist[i].num = parseInt(productlist[i].num) + parseInt(product.num);
result = true;
}
}
}
//没有该商品就直接加进去
if (!result) {
productlist.push({ "id": product.id, "name": product.name,"imgurl": product.imgurl, "num": product.num, "vipprice": product.vipprice, "saleprice": product.saleprice });
}
//重新计算总价
jsonstr.totalNumber = parseInt(jsonstr.totalNumber) + parseInt(product.num);
jsonstr.totalAmount = parseFloat(jsonstr.totalAmount) + (parseInt(product.num) * parseFloat(product.vipprice));
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
//保存购物车
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
}
},
//修改购买商品数量
updateproductnum: function (id, num) {
var ShoppingCart = utils.getParam("ShoppingCart");
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
for (var i in productlist) {
if (productlist[i].id == id) {
jsonstr.totalNumber = parseInt(jsonstr.totalNumber) + (parseInt(num) - parseInt(productlist[i].num));
jsonstr.totalAmount = parseFloat(jsonstr.totalAmount) + ((parseInt(num) * parseFloat(productlist[i].vipprice)) - parseInt(productlist[i].num) * parseFloat(productlist[i].vipprice));
productlist[i].num = parseInt(num);
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
return;
}
}
},
//获取购物车中的所有商品
getproductlist: function () {
var ShoppingCart = utils.getParam("ShoppingCart");
console.log(ShoppingCart);
if(ShoppingCart){
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));//如果购物车没有商品会报错;??????但照样可以用;
var productlist = jsonstr.productlist;
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
return productlist;
}else{
return;
}
},
//判断购物车中是否存在商品
existproduct: function (id) {
var result = false;
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart != null) {
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
for (var i in productlist) {
if (productlist[i].id == id) {
result = true;
}
}
}
return result;
},
//删除购物车中商品
deleteproduct: function (id) {
var ShoppingCart = utils.getParam("ShoppingCart");
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
var list = [];
for (var i in productlist) {
if (productlist[i]){
if (productlist[i].id == id) {
jsonstr.totalNumber = parseInt(jsonstr.totalNumber) - parseInt(productlist[i].num);
jsonstr.totalAmount = parseFloat(jsonstr.totalAmount) - parseInt(productlist[i].num) * parseFloat(productlist[i].vipprice);
} else {
if(productlist[i].id){
list.push(productlist[i]);
}
}
}
}
jsonstr.productlist = list;
orderdetail.totalNumber = jsonstr.totalNumber;
orderdetail.totalAmount = jsonstr.totalAmount;
utils.setParam("ShoppingCart", "'" + JSON.stringify(jsonstr));
},
//获取购物车中商品数量
getproducttotalnum: function () {
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart){
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
var productlist = jsonstr.productlist;
return jsonstr.totalNumber;
}else{
return 0;
}
},
//获取购物车中商品总价
getproducttotalAmount: function () {
var ShoppingCart = utils.getParam("ShoppingCart");
if (ShoppingCart){
var jsonstr = JSON.parse(ShoppingCart.substr(1, ShoppingCart.length));
// var productlist = jsonstr.productlist;
return jsonstr.totalAmount;
}else{
return 0;
}
},
//清除购物车某商品
clearshoppingcar: function (){
localStorage.clear();
}
};
调用方法:cart.clearshoppingcar(); //备注:在ajax中也可以执行该方法; 但在shoppingcar.js 中却不好封装ajax方法;
相信坚持的力量,日复一日的习惯.

浙公网安备 33010602011771号