如何在Javascript中正确更新Shopping Cart Total?

时间:2013-03-04 15:35:23

标签: javascript performance shopping-cart

我正在寻找一些能够:

的Javascript
  • 更新购物车选择的产品总数(下拉菜单)和输入的数量

(*安全性将由后端PHP处理。我在过去三天尝试了这一点,但显然我的代码非常糟糕,我觉得再次在此重新发布它感到羞耻)


我的想法:
  - 创建购物车对象
  - 创建一个函数,重新计算发生的任何变化的总数 (考虑到javascript只是将它传递给PHP脚本进行检查,我想不出任何其他需要的东西)

有没有人知道一些javascript可以完成我所寻求的工作?我的想法是否正确?

1 个答案:

答案 0 :(得分:2)

下面是使用显示模块模式构建的示例购物车javascript对象。

var shoppingCart = function () {
        var obj = {}, items = [];

        obj.AddItem = function (itemNo, quantity, price) {
            var item = {};
            item.itemNo = itemNo;
            item.quantity = quantity;
            item.price = price;
            items.push(item)
        };

        obj.GetAllItems = function () {
            return items;
        };

        obj.GetItemByNo = function (item) {
            for (var i = 0; i < items.length; i++) {
                if (items[i].itemNo === item)
                    return item[i];
            }
            return null;
        };

        obj.CalculateTotal = function () {
            var total = 0;
            for (var i = 0; i < items.length; i++) {
                total = total + (items[i].quantity * items[i].price);
            }
            return total;
        };

        return obj;
    };
    var cart = new shoppingCart();

使用AddItem方法添加项目,包括在UI中有用的其他属性。

shoppingcart.AddItem(2,4,2.4);

获取购物车中的商品列表

var items =  shoppingcart.GetAllItems();

计算购物车中商品的总价

var total = shoppingcart.CalculateTotal();

请注意,我在这里输入了此代码,因此可能包含拼写错误,并且我建议在添加项目之前将价格和数量的数据类型验证作为数字。