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的 ...
随机推荐
- 用PMML实现机器学习模型的跨平台上线
在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...
- Kafka监控系统Kafka Eagle剖析
1.概述 最近有同学留言反馈了使用Kafka监控工具Kafka Eagle的一些问题,这里笔者特意整理了这些问题.并且希望通过这篇博客来解答这些同学的在使用Kafka Eagle的时候遇到的一些困惑, ...
- SpringCloud Config客户端
SpringCloud Config服务端 1.导入依赖 <dependency> <groupId>org.springframework.cloud</groupI ...
- LeetCode专题-Python实现之第20题:Valid Parentheses
导航页-LeetCode专题-Python实现 相关代码已经上传到github:https://github.com/exploitht/leetcode-python 文中代码为了不动官网提供的初始 ...
- JDK源码分析(9)之 WeakHashMap 相关
平时我们使用最多的数据结构肯定是 HashMap,但是在使用的时候我们必须知道每个键值对的生命周期,并且手动清除它:但是如果我们不是很清楚它的生命周期,这时候就比较麻烦:通常有这样几种处理方式: 由一 ...
- 说说不知道的Golang中参数传递
本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为.在golang中存在着m ...
- MySQL 索引及查询优化总结
本文由云+社区发表 文章<MySQL查询分析>讲述了使用MySQL慢查询和explain命令来定位mysql性能瓶颈的方法,定位出性能瓶颈的sql语句后,则需要对低效的sql语句进行优化. ...
- 基于.Net进行前端开发的技术栈发展路线(三)
前言 上一篇<我的技能树二>文章分享了我的技能中的前端技能和Java技能,今天继续跟大家分享的就是后端技能了. 我的技能树 我当前的技能树: 其中,标注为黄色旗帜的是基本掌握,标注为红色旗 ...
- Spring框架浅析
一.一个简单的示例 1.引入依赖和配置 pom.xml <?xml version="1.0" encoding="UTF-8"?> <pro ...
- JavaScript 循环语句
while while循环由两个代码块组成,分别是条件语句和循环体. while ( [条件] ) { [循环体] } while循环类似于if语句,不同的是while循环将不断地执行循环体直 ...