Javascript购物车 操作Cookie存取Json
来源:互联网 发布:c多线程编程实战 pdf 编辑:程序博客网 时间:2024/05/23 14:44
在做 Asp.Net的购物网站时,查阅整理了一个购物车脚本,内含有操作cookie的方法,也有Josn转换的方法,使用方便,操作简单,老少皆宜。请各位更改指正
/**** 改变价格方法 ****/function changePrice() { var num = document.getElementById("number").value; if (num < 0 || num > 9999) rentun; var price = document.getElementById("totalPrice").value; document.getElementById("ECS_GOODS_AMOUNT").innerHTML = price * num + ".00";}/**********************************//**********************************//****CookiesHepler cookie操作类****//**********************************//**********************************//*根据名字获得Cookie值*/function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "=") if (c_start != -1) { c_start = c_start + c_name.length + 1 c_end = document.cookie.indexOf(";", c_start) if (c_end == -1) c_end = document.cookie.length return unescape(document.cookie.substring(c_start, c_end)) } } return ""}/* 设置Cookie的值 */function setCookie(c_name, value, expiredays) { var exdate = new Date() exdate.setDate(exdate.getDate() + expiredays) document.cookie = c_name + "=" + escape(value) +((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())}/*jsonHepler*/var jsonToString = function(obj) { var THIS = this; switch (typeof (obj)) { case 'string': return '"' + obj.replace(/(["\\])/g, '\\$1') + '"'; case 'array': return '[' + obj.map(THIS.jsonToString).join(',') + ']'; case 'object': if (obj instanceof Array) { var strArr = []; var len = obj.length; for (var i = 0; i < len; i++) { strArr.push(THIS.jsonToString(obj[i])); } return '[' + strArr.join(',') + ']'; } else if (obj == null) { return 'null'; } else { var string = []; for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property])); return '{' + string.join(',') + '}'; } case 'number': return obj; case false: return obj; }}var stringToJSON = function(obj) { return eval('(' + obj + ')'); }/*****************************//*******购物车业务开始********//*****************************//*****************************///获得购物车中商品的数量function CarNumber() { //debugger; //获得购物车数组 var cookieValue = getCookie("shopCar"); var shopCar; if (cookieValue == "" || cookieValue == "undefined") document.getElementById("carNum").innerHTML= "0"; else { shopCar = stringToJSON(cookieValue); document.getElementById("carNum").innerHTML= shopCar.length; }}//添加商品至购物车方法1function addToCar(proId, proNo, proName, proOldPrice, proNowPrice) { var number = document.getElementById("number").value; var cookieValue = getCookie("shopCar"); //创建购物车对象 var shopCar; //如果购物车为空添加新商品 if (cookieValue == "" ||cookieValue == "undefined") { //创建新购物车 shopCar = new Array(); //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = number; good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 shopCar[0] = good; } else { //获得购物车对象 shopCar = stringToJSON(cookieValue); var index = shopCar.length; //便利购物车中的商品 var i ; for (i = 0; i < index; i++) { var good = shopCar[i]; //购物车中是否存在要添加的商品 if (good.id == proId) { //追加数量并求出总金额 good.proNumber = parseInt(good.proNumber) + parseInt(number); good.proTatol = good.nowPrice * good.proNumber; break; } } //如果循环未终端,则添加新商品到购物车 if (i == index) { //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = number; good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 shopCar[index] = good; } } setCookie("shopCar", jsonToString(shopCar), 12); var pop = window.open("/myshopcar.aspx"); pop.focus();}//添加商品至购物车方法2function addToCar2(proId, proNo, proName, proOldPrice, proNowPrice) { var number = document.getElementById("number").value; var cookieValue = getCookie("shopCar"); //创建购物车对象 var shopCar; //如果购物车为空添加新商品 if (cookieValue == "" || cookieValue == "undefined") { //创建新购物车 shopCar = new Array(); //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = number; good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 shopCar[0] = good; } else { //获得购物车对象 shopCar = stringToJSON(cookieValue); var index = shopCar.length; //便利购物车中的商品 var i; for (i = 0; i < index; i++) { var good = shopCar[i]; //购物车中是否存在要添加的商品 if (good.id == proId) { //debugger; //追加数量并求出总金额 good.proNumber = parseInt(good.proNumber) + parseInt(number); good.proTatol = good.nowPrice * good.proNumber; break; } } //如果循环未终端,则添加新商品到购物车 if (i == index) { //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = parseInt(number); good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 shopCar[index] = good; } } setCookie("shopCar", jsonToString(shopCar), 12); show_add2car();}//添加商品至购物车方法3function addToCar3(proId, proNo, proName, proOldPrice, proNowPrice) { var cookieValue = getCookie("shopCar"); //创建购物车对象 var shopCar; //如果购物车为空添加新商品 if (cookieValue == "" || cookieValue == "undefined") { //创建新购物车 shopCar = new Array(); //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = 1; good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 shopCar[0] = good; } else { //获得购物车对象 shopCar = stringToJSON(cookieValue); var index = shopCar.length; //便利购物车中的商品 var i; for (i = 0; i < index; i++) { var good = shopCar[i]; //购物车中是否存在要添加的商品 if (good.id == proId) { //追加数量并求出总金额 good.proNumber = parseInt(good.proNumber) + 1; good.proTatol = good.nowPrice * good.proNumber; break; } } //如果循环未终端,则添加新商品到购物车 if (i == index) { //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = 1; good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 shopCar[index] = good; } } setCookie("shopCar", jsonToString(shopCar), 12); alert("商品已加入购物车!"); removeFavoriteProduct2(proId); }/*商品加入收藏夹方法*/function addFavorite(proId, proNo, proName, proOldPrice, proNowPrice) { var cookieValue = getCookie("myFavorite"); //创建收藏夹对象 var favorite; //如果收藏夹为空添加新商品 if (cookieValue == "" || cookieValue == "undefined") { //创建新购物车 favorite = new Array(); //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = 1; good.proTatol = good.nowPrice * good.proNumber; //给购物车添加商品 favorite[0] = good; } else { //获得收藏夹对象 favorite = stringToJSON(cookieValue); var index = favorite.length; //遍历收藏夹中的商品 var i; for (i = 0; i < index; i++) { var good = favorite[i]; //收藏夹中是否存在要添加的商品 if (good.id == proId) { alert("该商品已在收藏夹"); return; } } //如果循环未终端,则添加新商品到购物车 if (i == index) { //创建一个商品对象 var good = new Object(); good.id = proId; good.no = proNo; good.name = proName; good.oldPrice = proOldPrice; good.nowPrice = proNowPrice; good.proNumber = 1; good.proTatol = good.nowPrice * good.proNumber; //给收藏夹添加商品 favorite[index] = good; } } setCookie("myFavorite", jsonToString(favorite), 12); alert("商品已加入收藏夹");}//更新购物车方法function updateCar(proId) { //debugger; var id = "num" + proId; var proNumber = document.getElementById(id).value; var cookieValue = getCookie("shopCar"); if (cookieValue != null && cookieValue.length != 0) { //创建购物车对象 var shopCar = stringToJSON(cookieValue); for (var i = 0; i < shopCar.length; i++) { var good = shopCar[i]; if (good.id == proId) { good.proNumber = parseInt(proNumber); good.proTatol = good.nowPrice * good.proNumber; break; } } } setCookie("shopCar", jsonToString(shopCar), 12); readCar();} //读取购物车方法function readCar() { //购物车页面字符串 var carHtmlStr=""; //购物总金额 var totalMoney = 0; //市场价总金额 var totalMoneyOld = 0; //商品总个数 var totalNum = 0; var cookieValue = getCookie("shopCar"); if (cookieValue != "" && cookieValue != "undefined") { carHtmlStr += "<table border='0' cellspacing='1' cellpadding='5' width='99%' bgColor='#dddddd' align='center'><tbody>"; carHtmlStr += "<tr>"; carHtmlStr += "<th bgColor='#ffffff'>商品名称</th>"; carHtmlStr += "<th bgColor='#ffffff'>商品货号</th>"; carHtmlStr += "<th bgColor='#ffffff'>市场价</th>"; carHtmlStr += "<th bgColor='#ffffff'>本店价</th>"; carHtmlStr += "<th bgColor='#ffffff'>购买数量</th>"; carHtmlStr += "<th bgColor='#ffffff'>小计</th>"; carHtmlStr += "<th bgColor='#ffffff'>操作</th>"; carHtmlStr += "</tr>"; //获得购物车 var shopCar = stringToJSON(cookieValue); for (var i = 0; i < shopCar.length; i++) { var good = shopCar[i]; totalMoney += parseInt(good.proTatol); totalNum += parseInt(good.proNumber); totalMoneyOld += parseInt(good.oldPrice * good.proNumber); carHtmlStr += "<tr>"; carHtmlStr += "<td bgColor=#ffffff align=middle>"; carHtmlStr += "<a href='/showinfopage.aspx?ProductId="+good.id+"' target='_blank'>"; carHtmlStr += "<img width='150px' height='150px' alt='"+good.name+"' border=0 src='/image/product/"+good.no+"/220.jpg'>"; carHtmlStr += "</a><br/>"; carHtmlStr += "<a class='f6' href='/showinfopage.aspx?ProductId=" + good.id + "' target='_blank'>" + good.name + "</a></td>"; carHtmlStr += "<td bgColor='#ffffff' align='middle'>" + good.no + "</td>"; carHtmlStr += "<td bgColor='#ffffff' align='right'>¥" + good.oldPrice + "元</td>"; carHtmlStr += "<td bgColor='#ffffff' align='right'>¥" + good.nowPrice + "元</td>"; carHtmlStr += "<td bgColor='#ffffff' align='center'>"; carHtmlStr += "<input type='text' style='TEXT-ALIGN: center' onkeyup='updateCar(" + good.id + ")' id='num" + good.id + "' value='" + good.proNumber + "' size='5' name='num" + good.id + "' /></td>"; carHtmlStr += "<td bgColor='#ffffff' align='right'>¥" + good.proTatol + ".00元</td>"; carHtmlStr += "<td bgColor='#ffffff' align='middle'>"; carHtmlStr += "<a class='f6' href='javascript:removeProduct(" + good.id + ")'>删除</a> "; carHtmlStr += "<a class='f6' href='javascript:addFavorite(" + good.id + ",\"" + good.no + "\",\"" + good.name + "\",\"" + good.oldPrice + "\",\"" + good.nowPrice + "\")'>放入收藏夹</a>"; carHtmlStr += "</td></tr>"; } carHtmlStr += "</tbody>"; carHtmlStr += "</table>"; } else { carHtmlStr="<div style='font-size:20px;margin-top:20;text-align:center;color:red;height:50px;'><a href='/index.aspx' style='color:red;' target='_self'>您还没有选择法器,请您认真挑选,慈悲为怀....</a></div>"; } CarNumber(); document.getElementById("divCar").innerHTML = carHtmlStr; document.getElementById("total1").innerHTML=totalMoney; document.getElementById("total2").innerHTML = totalMoneyOld; document.getElementById("totalNum").innerHTML = totalNum; document.getElementById("jieshen").innerHTML = totalMoneyOld - totalMoney;}//结算中心中的购物车展示function readCar2(){ //debugger; //购物车页面字符串 var carHtmlStr = ""; //购物总金额 var totalMoney = 0; //市场价总金额 var totalMoneyOld = 0; //商品总个数 var totalNum = 0; var cookieValue = getCookie("shopCar"); if (cookieValue != "" && cookieValue != "undefined") { carHtmlStr += "<table border='0' cellspacing='1' cellpadding='5' width='99%' bgColor='#dddddd' align='center'><tbody>"; carHtmlStr += "<tr>"; carHtmlStr += "<th bgcolor='#ffffff'>商品名称</th>"; carHtmlStr += "<th bgcolor='#ffffff'>商品货号</th>"; carHtmlStr += "<th bgcolor='#ffffff'>市场价</th>"; carHtmlStr += "<th bgcolor='#ffffff'>本店价</th>"; carHtmlStr += "<th bgcolor='#ffffff'>购买数量</th>"; carHtmlStr += "<th bgcolor='#ffffff'>小计</th>"; carHtmlStr += "</tr>"; //获得购物车 var shopCar = stringToJSON(cookieValue); for (var i = 0; i < shopCar.length; i++) { var good = shopCar[i]; totalMoney += parseInt(good.proTatol); totalMoneyOld += parseInt(good.oldPrice * good.proNumber); totalNum += parseInt(good.proNumber); carHtmlStr += "<tr>"; carHtmlStr += "<td bgcolor=#ffffff align=middle>"; carHtmlStr += "<a class='f6' href='/showinfopage.aspx?ProductId=" + good.id + "' target='_blank'>" + good.name + "</a></td>"; carHtmlStr += "<td bgcolor='#ffffff' align='middle'>" + good.no + "</td>"; carHtmlStr += "<td bgcolor='#ffffff' align='right'>¥" + good.oldPrice + "元</td>"; carHtmlStr += "<td bgcolor='#ffffff' align='right'>¥" + good.nowPrice + "元</td>"; carHtmlStr += "<td bgcolor='#ffffff' align='right'>" + good.proNumber + "</td>"; carHtmlStr += "<td bgcolor='#ffffff' align='right'>¥" + good.proTatol + "元</td></tr>"; } carHtmlStr += "<tr><td bgcolor='#ffffff' colspan='6' align='right'>购物金额小计:共有" + totalNum + "件商品,<font class='f4_b'> ¥" + totalMoney + ".00元</font>,比市场价 <font color='blue'>¥" + totalMoneyOld + ".00元</font> 节省了 <font color='green'>¥" + (totalMoneyOld - totalMoney) + ".00元</font></td></tr>"; carHtmlStr += "</tbody>"; carHtmlStr += "</table>"; } else { carHtmlStr = "<div style='font-size:20px;margin-top:20;text-align:center;color:red;height:50px;'><a href='/index.aspx' target='_self'>您还没有选择法器,请您认真挑选,慈悲为怀....</a></div>"; } document.getElementById("divCar2").innerHTML = carHtmlStr; document.getElementById("totalPrice").innerHTML = totalMoney; document.getElementById("totalPrice2").value = totalMoney; document.getElementById("totalScore").innerHTML = totalMoney ; document.getElementById("totalNumber").innerHTML = totalNum; document.getElementById("totalNumber2").value = totalNum;} //读取收藏夹方法function readFavorite() { //收藏夹页面字符串 var favoriteHtmlStr=""; //商品总个数 var totalNum = 0; var cookieValue = getCookie("myFavorite"); if (cookieValue != "" && cookieValue != "undefined") { favoriteHtmlStr += "<table border=0 cellSpacing=1 cellPadding=5 width='100%' bgcolor='#dddddd'><tbody>"; favoriteHtmlStr += "<tr align='center'>"; favoriteHtmlStr += "<th bgcolor='#ffffff' width='35%'>商品名称</th>"; favoriteHtmlStr += "<th bgcolor='#ffffff' width='30%'>价格</th>"; favoriteHtmlStr += "<th bgcolor='#ffffff' width='35%'>操作</th>"; favoriteHtmlStr += "</tr>"; //获得收藏夹 var favorite = stringToJSON(cookieValue); totalNum=favorite.length; for (var i = 0; i < favorite.length; i++) { var good = favorite[i]; favoriteHtmlStr += "<tr>"; favoriteHtmlStr += "<td bgcolor='#ffffff'>"; favoriteHtmlStr += "<a class='f6' href='/showinfopage.aspx?ProductId="+ good.id +"'>"+good.name+"("+good.no+")</a>"; favoriteHtmlStr += "</td>"; favoriteHtmlStr += "<td bgcolor='#ffffff'>本店售价:<span class=goods-price>¥"+good.nowPrice+"元</span> </td>"; favoriteHtmlStr += "<td bgcolor='#ffffff' align='center'>"; favoriteHtmlStr += "<A class=f6 href='javascript:addToCar3(" + good.id + ",\"" + good.no + "\",\"" + good.name + "\",\"" + good.oldPrice + "\",\"" + good.nowPrice + "\")'>加入购物车</A> | "; favoriteHtmlStr += "<A class=f6 href='javascript:removeFavoriteProduct("+good.id+")'>删除</A>"; favoriteHtmlStr += "</td>"; favoriteHtmlStr += "</tr>"; } favoriteHtmlStr += "</tbody>"; favoriteHtmlStr += "</table>"; } else { favoriteHtmlStr="<div style='font-size:20px;margin-top:20;text-align:center;color:red;height:50px;'>收藏夹中尚无商品,请您继续挑选,总有一款适合您,阿弥陀佛....</div>"; } document.getElementById("favoriteDiv").innerHTML = favoriteHtmlStr; document.getElementById("totalF").innerHTML=totalNum;}//清空购物车方法function clearCar() { if (window.confirm("您确定要清空购物车吗?")) { var cookieValue = getCookie("shopCar"); if (cookieValue != "") { var date = new Date(); date.setTime(date.getDate() - 99999); setCookie("shopCar", null, -1); } } readCar();}//删除一件商品的方法function removeProduct(proId) { var cookieValue = getCookie("shopCar"); //获得购物车对象 var shopCar = stringToJSON(cookieValue); var index = shopCar.length; if (index > 1) { var i; for (i = 0; i < index; i++) { var good = shopCar[i]; //购物车中是否存在要添加的商品 if (good.id == proId) { if (window.confirm("您确定删除此商品吗?")) { shopCar = delArray(shopCar, i); setCookie("shopCar", jsonToString(shopCar), 12); alert("已经将商品移除!"); readCar(); } break; } } } else { clearCar(); alert("已经将购物车清空!"); readCar(); } }//删除一件收藏夹中商品的方法function removeFavoriteProduct(proId) { var cookieValue = getCookie("myFavorite"); //获得购物车对象 var favorite = stringToJSON(cookieValue); var index = favorite.length; if (index > 1) { var i; for (i = 0; i < index; i++) { var good = favorite[i]; //购物车中是否存在要添加的商品 if (good.id == proId) { if (window.confirm("您确定从收藏夹移除此商品吗?")) { favorite = delArray(favorite, i); setCookie("myFavorite", jsonToString(favorite), 12); alert("已经将商品移除!"); readFavorite(); } break; } } } else { setCookie("myFavorite", jsonToString(favorite), -1); alert("已经将收藏夹清空!"); readFavorite(); } }//删除一件收藏夹中商品的方法function removeFavoriteProduct2(proId) { var cookieValue = getCookie("myFavorite"); //获得购物车对象 var favorite = stringToJSON(cookieValue); var index = favorite.length; if (index > 1) { var i; for (i = 0; i < index; i++) { var good = favorite[i]; //购物车中是否存在要添加的商品 if (good.id == proId) { favorite = delArray(favorite, i); setCookie("myFavorite", jsonToString(favorite), 12); readFavorite(); break; } } } else { setCookie("myFavorite", jsonToString(favorite), -1); readFavorite(); }}//删除数组元素方法function delArray(array, index) { if (index < 0) return array; else return array.slice(0, index).concat(array.slice(index + 1, array.length));}/*提交订单方法*/function SubmitFormCar() { var frm = document.getElementById("theform"); frm.submit();}/** 隐藏显示提示方法 **/function show_add2car() { $('add2car_po').style.display = 'block'; var obj = $('add2car'); var t = obj.offsetTop; var l = obj.offsetLeft; while (obj = obj.offsetParent) { t += obj.offsetTop; l += obj.offsetLeft; } $('add2car_po').style.left = l; $('add2car_po').style.top = t + 36; $('add2car_po').style.height = "0px"; change_add2car();}function change_add2car() { if (parseInt($('add2car_po').style.height) < 60) { $('add2car_po').style.height = parseInt($('add2car_po').style.height) + 5 + "px"; clearTimeout(timer2); var timer2 = setTimeout("change_add2car()", 80); timer2; } else { setTimeout("hide_add2car()", 2000); }}function hide_add2car() { $('add2car_po').style.display = 'none';}
- Javascript购物车 操作Cookie存取Json
- javascript购物车cookie存取
- javascript中对cookie的存取查操作
- localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车
- localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车
- localStorage存值取值以及存取JSON,以及基于html5 localStorage的购物车
- COOKIE购物车
- jq+cookie 购物车
- JS+COOKIE购物车
- 购物车--cookie+ajax
- 购物车cookie
- cookie实现购物车
- Cookie实现 购物车
- cookie实现购物车
- JavaScript实现本地数据简单存取以及Json数据存取
- Javascript利用Cookie实现购物车程序
- cookie存取
- cookie存取
- flex 4 权威指南学习历程
- C++函数参数指南
- 上下五千年
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 1)
- hdu1097
- Javascript购物车 操作Cookie存取Json
- 在C + + 0 x新标准中,使用构造函数初始化列表和序列
- 6年多IT项目经验,还没有跟测试人员打过交道
- openCV 矩阵(图像)操作函数
- 关于在右下脚弹出窗口javascript代码,并用ASP.NET在后台调用(原创)
- The 36th ACM/ICPC Asia Regional Fuzhou Site / 1001 A Card Game 简证
- 这篇文章不错
- LINQtosqllinqtoxml\JS操作JSON
- led驱动测试成功