Cookie 版购物车
写一个JS文件 把相应的方法写在JS文件内 为了方便以后的调用
具体代码为
var Cart = function () {
this.Count = 0;
this.Total = 0;
this.Items = new Array();
};
//购物车集合对象
var CartItem = function () {
this.Id = 0;
this.Name = "";
this.Count = 0;
this.Price = 0;
}; //购物车操作
var CartHelper = function () {
this.cookieName = "wangjian";
this.Clear = function () {
var cart = new Cart();
this.Save(cart);
return cart;
}; //向购物车添加
this.Add = function (id, name, count, price) {
var cart = this.Read();
var index = this.Find(id); if(count==0){
this.Del(id); }else{
//如果ID已存在,覆盖数量
if (index > -1) {
cart.Total -= (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
cart.Items[index].Count = count;
cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000); } else {
var item = new CartItem();
item.Id = id;
item.Name = name;
item.Count = count;
item.Price = price;
cart.Items.push(item);
cart.Count++;
cart.Total += (((item.Count * 100) * (item.Price * 100)) / 10000);
// console.log(cart);
// cart.Total += (((cart.Items[index].Count * 100) * (cart.Items[index].Price * 100)) / 10000);
}
cart.Total=Math.round(cart.Total * 100) / 100;
this.Save(cart);
} return cart;
};
//改变数量
this.Change = function (id, count) {
var cart = this.Read();
var index = this.Find(id);
cart.Items[index].Count = count;
this.Save(cart);
return cart;
};
//移出购物车
this.Del = function (id) {
var cart = this.Read();
var index = this.Find(id);
if (index > -1) {
var item = cart.Items[index];
cart.Count--;
cart.Total = cart.Total - (((item.Count * 100) * (item.Price * 100)) / 10000);
cart.Items.splice(index, 1);
this.Save(cart);
} return cart; };
//根据ID查找
this.Find = function (id) {
var cart = this.Read();
var index = -1;
for (var i = 0; i < cart.Items.length; i++) {
if (cart.Items[i].Id == id) {
index = i;
}
}
return index;
};
//COOKIE操作
this.Save = function (cart) {
var source = "";
for (var i = 0; i < cart.Items.length; i++) {
if (source != "") { source += "|$|"; }
source += this.ItemToString(cart.Items[i]);
}
$.cookie(this.cookieName, source);
};
this.Read = function () {
//读取COOKIE中的集合
var source = $.cookie(this.cookieName);
var cart = new Cart();
if (source == null || source == "") {
return cart;
}
var arr = source.split("|$|");
cart.Count = arr.length;
for (var i = 0; i < arr.length; i++) {
var item = this.ItemToObject(arr[i]);
cart.Items.push(item);
cart.Total += (((item.Count * 100) * (item.Price * 100)) / 10000);
}
return cart;
};
this.ItemToString = function (item) {
return item.Id + "||" + escape(item.Name) + "||" + item.Count + "||" + item.Price;
};
this.ItemToObject = function (str) {
var arr = str.split('||');
var item = new CartItem();
item.Id = arr[0];
item.Name = unescape(arr[1]);
item.Count = arr[2];
item.Price = arr[3];
return item;
};
};
导入JS文件
Script内方法:
//定义点击事件
function get(){
//购物车
//调用 实例化对象
var xc=new CartHelper(); //传递参数id,名称,数量,价格 数量为0的话直接删除
var id = name;
var c_name = $(".comm_title").html();
var num = $("#number").val();
var price = $(".comm_price").html();
//对象传参
xc.Add(id,c_name,num,price); var order_list= $.cookie('wangjian') //read方法获cookie内存储的值
console.log(xc.Read())
}
Cookie 版购物车的更多相关文章
- [转].net cookie版购物车
本文转自:http://www.sulong.cc/article/program/aspx/110613114249.html #region 添加到购物车AddShoppingCar /// &l ...
- 购物车非cookie版
2015.11.26购物车,非cookie版 [点击来,你发现被骗了(笑哭,笑哭,笑哭,源代码的话,留下邮箱吧,是在不好找这一时半会儿的.)] Jsp通过反射机制获取bean中的标签,但其实,可以没有 ...
- 【JSP】Cookie的使用及保存中文,并用Cookie实现购物车功能
Cookie是服务器存放在客户端的一些数据,比如密码,以及你曾经访问过的一些数据. 设置Cookie //设置cookie Cookie cookie = new Cookie("TOM&q ...
- 工作任务:模拟淘宝登录和购物车功能:使用cookie记录登录名,下次登录时能够记得上次的登录名,使用cookie模拟购物车功能,使用session记住登录信息并验证是否登录,防止利用url打开网站,并实现退出登录功能
登入界面<% Cookie[] cks =request.getCookies(); String str=null; for(Cookie ck:cks) { if(ck.getName(). ...
- 基于Cookie的购物车
var Cookies = {}; Cookies.set = function (name, value) { var argv = arguments; var argc = arguments. ...
- jQuery基于json与cookie实现购物车的方法
/** * 添加商品及数量到购物车cookie中,返回当前商品在cookie中的总数 */ function AddToShoppingCar(id, num, type) { var _num = ...
- Cookie实现购物车功能
这里的购物车暂时存放书,后期把参数改成Object,把方法抽取成接口,只要实现了接口的Object类都可以放进购物项,这样就实现了购物任何物品 使用购物项因为一个购物项可以包含某种商品的数量,总价等, ...
- javaweb学习——session和Cookie实现购物车功能
1.创建Book类,实现对图书信息的封装. package cn.it.sessionDemo.example1; import java.io.Serializable; /** * 该类实现对图书 ...
- 【Tomcat】JSP使用Session、Cookie实现购物车
购物界面shop.jsp 初始页面 添加商品后,在session中设置属性,重定向回到shop.jsp,然后根据session的内容显示结果 Cookie设置setMaxAge可以延长session的 ...
随机推荐
- [十一]JavaIO之DataInputStream 和 DataOutputStream
功能简介 DataInputStream和DataOutputStream 继承了各自的FilterInputStream以及FilterOutputStream 使用装饰器模式对InputStrea ...
- Django学习笔记(5)——cookie和session
一,前言 1.1,什么是会话跟踪技术 在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束.在一个会话的多个请求中共享数据,这就是会话跟踪技术. 例如在一 ...
- 痞子衡嵌入式:ARM Cortex-M文件那些事(6)- 可执行文件(.out/.elf)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的executable文件(elf). 第四.五节课里,痞子衡已经给大家介绍了2种output文件,本文继续给大家讲proje ...
- ruby中to_s和to_str、to_i和to_int、to_a和to_ary、to_h和to_hash的解释说明
包括to_s和to_str.to_i和to_int.to_a和to_ary.to_h和to_hash.统称为to_x和to_xxx. 那么,to_x和to_xxx的区别是什么,什么时候使用to_x,什 ...
- mac终端调用编辑器打开文件
1.调用atom编辑器,前提是编辑器打开, cd+filename 2 .VScode里面: 调用终端:ctrl + `(esc健下面那个) 安装:shift + command+ p 安装如下插件 ...
- .Net语言 APP开发平台——Smobiler学习日志:SmoOne新增考勤功能
大家好!SmoOne这次新增了考勤功能,大家打开SmoOne应用便可体验,无需重新下载更新.如果没有下载SmoOne客户端,可以在apps.smobiler.com进行下载安装. 另外,SmoOne开 ...
- TensorFlow与Flask结合识别手写体数字
阅读本文约“2.2分钟” TensorFlow框架 ——TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统 ——可被用于语音识别或图像识别等多项机器学习和深度学习领域 ...
- docker安装wnameless/oracle-xe-11g并运行(手写超详细)
前景:没事想玩下linux,想着以后可以部署下自己的web项目上去,然后我就想装个oracle来着...之前都不懂linux来着,只知道公司的项目都是部署在上面,然后从装系统到装完oracle用了近五 ...
- QT解析和组装json
json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单 1.什么是json? A:json就是个<key,value>字符串 ①一个json对象 {&qu ...
- asyncio异步IO——Streams详解
前言 本文翻译自python3.7官方文档--asyncio-stream,译者马鸣谦,邮箱 1612557569@qq.com.转载请注明出处. 数据流(Streams) 数据流(Streams)是 ...