我正在创建Add to cart
模块。我有Add to cart
按钮,当用户点击它时,它会将项目的JSON data
注册到cookie。
这是项目对象的示例:
item =
{
DepartmentID :56,
CategoryID:117,
BrandID:19,
BrandImage:" ",
BrandName:"General",
Quantity:5,
ID:706
};
这就是我用cookie做的事情:
$('#addToCart').click(function(){
addObjToCookie('Cart',item);
});
function serializeObjToJSON(obj) {
var json = $.toJSON(obj);
return json;
}
function deserializeJSONToObj(json) {
var obj = $.evalJSON(json);
return obj;
}
function addObjToCookie(cookieName, obj) {
var jsonObj = serializeObjToJSON(obj);
$.cookie(cookieName, jsonObj);
}
function getDataFromCookie(cookieName){
var obj = deserializeJSONToObj($.cookie(cookieName));
return obj;
}
当用户点击$(cookie('Cart'))
按钮时,如何将项目对象附加到Add to cart
,格式为:
[{"DepartmentID":56,"CategoryID":117,"BrandID":19,"BrandImage":" ","BrandName":"General","Quantity":5,"ID":706},
{"DepartmentID":56,"CategoryID":117,"BrandID":19,"BrandImage":" ","BrandName":"General","Quantity":1,"ID":707}];
如何计算Cart
Cookie中的项目,在此示例中,结果为2
。
Cart
中的项目存在,则增加Quantity
+ 1。非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
以下是回答1&的调整2
function addObjToCookie(cookieName, obj) {
// When adding see what's in there
var currentCart = getDataFromCookie( cookieName );
// Add what's new
currentCart.push( obj );
// Save new contents
$.cookie(cookieName, serializeObjToJSON( currentCart ) );
}
function getDataFromCookie(cookieName){
var val = $.cookie(cookieName);
// Make sure this returns something valid if it's not there
if ( !val ) {
return [];
}
// No need to save off something if you're not doing anything with it
return deserializeJSONToObj( val );
}
对于#3,在实际保存新的cookie内容之前,循环返回值直到找到匹配,如果你确实修改了它而不是推送到数组。
如果您尝试循环并且它不起作用,请发布您的尝试。我喜欢帮助但不是从头开始编写代码,所以你也可以学习一些代码。