实施购物车JavaScript

时间:2019-01-09 07:34:11

标签: javascript cart

在这里,我要尝试的是当用户单击+按钮函数时,它将查找cookie shopping_cart。然后,它尝试查找具有键“ item_qty”的JSON,该键是购物车中所有商品的键值对。但是购物车没有更新,此外,当单击+按钮时,JSON在位置0处显示意外令牌N

在浏览器控制台中,我得到的是

“ csrftoken = some_value; shopping_cart = None”

var updateCart = function (count) {
    $('#cart-info').val($('#cart-info').val() + count);
};



var item_add = function (item_slug) {
    var shopping_cart = JSON.parse($.cookie("shopping_cart"));
    var item_slug = item_slug;
    if(shopping_cart.hasOwnProperty('item_qty')){
        item_qty_dict = shopping_cart['item_qty'];
        if(item_qty_dict.hasOwnProperty(item_slug)){
            var count_pre = item_qty_dict[item_slug];
            item_qty_dict[item_slug] = count_pre + 1;
        }
        else {
            item_qty_dict[item_slug] = 1;
            shopping_cart['item_qty'] = item_qty_dict;
        }
    }
    else {
        shopping_cart = {}
        shopping_cart['item_qty'] = {item_slug: 1};
    }
    $.cookie("shopping_cart", JSON.stringify(shopping_cart));
    var temp= $.cookie('shopping_cart')
    console.log(JSON.parse(temp));
};


var buttonPlus = $(".cart-qty-plus");

var incrementPlus = buttonPlus.click(function () {
    var $n = $(this)
        .parent(".qnty_chngr")
        .find(".qty");
    $n.val(Number($n.val()) + 1);
    var product_slug = $(this).parent(".qnty_chngr").siblings('.product-slug').val();
    console.log(product_slug);
    updateCart(1);
    item_add(product_slug);
});

HTML:

                        <div class="qnty_chngr">
                                    <button class="cart-qty-plus" type="button" value="+">+</button>
                                    <input type="text" name="qty" maxlength="12" value="1" class="input-text qty"/>
                                    <button class="cart-qty-minus" type="button" value="-" title="Add less quantity">-</button>
                        </div>
                        <input type="hidden" class="product-slug" name="product_slug" value="{{ medicine.slug }}">
                        <div class="add_to_cart">
                            <button  class="add_to_cart_txt" value="10"><span class="AddInfoBtn">Add </span></button>

                        </div>,

1 个答案:

答案 0 :(得分:0)

您的Cookie中似乎没有有效的JSON。 None无效,应为"None"(带引号)。在测试之前,请删除Cookie。

如果可能的话,也可以尝试使用符合您期望的方式运行的库。

https://github.com/js-cookie/js-cookie