3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481

Не увеличивает колво

05.08.2016, 12:33. Показов 580. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такова мы формируем корзину, если в корзине есть какой товар мы должны увеличить кол-во товара
к примеру мы заказала 3 бутылки виски, а потом решили еще дозаказать 5 этого же виски и вот все суммирует, но почему-то
не сохраняет
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//AddItemToCart(photo, name, describe, quantity, price)
function addItemToCart(photo, name, describe, quantity, price) {
    for (var i in cartWhisky) {
        if (cartWhisky[i].name===name){
            console.log("quantity: "+quantity);
            quantity=Number(cartWhisky[i].quantity + quantity);
            console.log("quantity=Number(cartWhisky[i].quantity + quantity): "+quantity);
            console.log("cartWhisky[i].quantity: "+cartWhisky[i].quantity);
            saveCart();
            return;
        }
    }
 
    var item = new itemCart(photo, name, describe, quantity, price);
    cartWhisky.push(item);
   
}
//SaveCart()
function saveCart() {
   
    localStorage.setItem("shoppingCart", JSON.stringify(cartWhisky));
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2016, 12:33
Ответы с готовыми решениями:

Колво возможных произведений
Есть число 2<=k<=1.000.000 нужно найти маскимальное колво произведений(1х4 и 4х1 это разные произведения). Например для числа 6 это ...

ограниченное колво символов в Label
Как задать ограниченное колво символов в Label и если превышает чтоб стояло многоточие

В массиве а1,а2, .,а50 определить колво нулей
Заранее спасибо!

7
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
05.08.2016, 15:45
а переменная cartWhisky у тебя объявлена как глобальная?

Не по теме:

"Интересные" у тебя комментарии к функциям

0
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
06.08.2016, 20:47  [ТС]
да объявлена так :
JavaScript
1
2
3
4
5
6
7
8
9
var cartWhisky = new Array;
 
var itemCart = function (photo, name, describe, quantity, price) {
    this.photo = photo;
    this.name = name;
    this.describe = describe;
    this.quantity = quantity;
    this.price = price;
};
0
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
06.08.2016, 21:47
а у тебя случайно еще где-нибудь есть сохранение в localStorage по ключу shoppingCart?
0
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
06.08.2016, 21:59  [ТС]
да куча, весь скрипт выглядит так:

Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
//$(document).ready(function() {
 
var cartWhisky = new Array;
 
var itemCart = function (photo, name, describe, quantity, price) {
    this.photo = photo;
    this.name = name;
    this.describe = describe;
    this.quantity = quantity;
    this.price = price;
};
 
function buyFromJS() {
 
    var photo = $("#photoId").val();
    var name = $("#nameWhiskey").val();
    var describe = $("#describeID").val();
    var quantity = $("#numberOrderWhisky").val();
    var quantityInDB = Number($("#quantityWhiskeyInDB").val());
    var price = $("#priceID").val();
 
    var valueWhisky = (price*quantity).toFixed(2);
    $("#changePrice").html(valueWhisky);
    console.log("valueWhisky "+valueWhisky);
    if (Number(quantity) <= quantityInDB) {
        //var k = loadCart();
        console.log(localStorage.getItem("shoppingCart"));
        if (localStorage.getItem("shoppingCart") === null) {
            cartWhisky = new Array;
            addItemToCart(photo, name, describe, quantity, price);
            saveCart();
            comeBack();
        } else {
            loadCart();
            addItemToCart(photo, name, describe, quantity, price);
            saveCart();
            comeBack(); //возвращаемся на главную страницу без изменения кол-ва виски, т.к. оно в корзине.
            //sendBuyWhiskyInJava();
        }
    }
    else if (Number(quantity) > quantityInDB && quantity < 0) {
       alert("Error quantity");
    }
}
//AddItemToCart(photo, name, describe, quantity, price)
function addItemToCart(photo, name, describe, quantity, price) {
 
    var item = new itemCart(photo, name, describe, quantity, price);
    cartWhisky.push(item);
    saveCart();
}
//clear
function clearCart() {
    cartWhisky = [];
    saveCart();
}
 
//SaveCart()
function saveCart() {
    //JSON.parse – читает объекты из строки в формате JSON.
    //JSON.stringify – превращает объекты в строку в формате JSON, используется, когда нужно из JavaScript передать данные по сети.
 
    localStorage.setItem("shoppingCart", JSON.stringify(cartWhisky));
}
 
//loadCart()
function loadCart() {
    cartWhisky = JSON.parse(localStorage.getItem("shoppingCart"));
}
 
$(document).ready(function() {
 
 
    loadCart();
    var cartArray = listCart();
    var table ='';
    displayShow();
 
    function displayShow() {
        table = '';
        for(var r in cartArray){
            table +='<tr><td width="50"><img src="' + cartArray[r].photo + '" width=35 height=80></td>\
            <td width="100">'+cartArray[r].name+'</td>\
            <td width="150">'+cartArray[r].describe+'</td>\
            <td width="100">\
            <table width="80"><td align="right"><button class="minus" data-name="'+cartArray[r].name+'">-</button></td>\
            <td align="center"> '+cartArray[r].quantity +'</td>\
            <td align="left"><button class="plus" data-name="'+cartArray[r].name+'">+</button></td></tr></table>\
            </td>\
                +<td width="50" align="center">'+cartArray[r].price+'</td>\
                +<td width="80">' + cartArray[r].total + '</td>\
                +<td width="50"><button class="deleteItem" data-name="'+cartArray[r].name+'">X</button></td></tr>';
        }
        $('#trash').html(table);
        $("#totalCart").html(totalPriceInCart());
 
  }
    $('#trash').on("click", ".minus", function (e){
    var name = $(this).attr("data-name");
    removeOneItemsFromCart(name);
        cartArray = listCart();
    displayShow()
    });
  $('#trash').on("click", ".plus", function (e){
    var name = $(this).attr("data-name");
      addOneItemsToCart(name);
        cartArray = listCart();
    displayShow()
    });
 $('#trash').on("click", ".deleteItem", function (e){
    var name = $(this).attr("data-name");
      removeAllItemsFromCart(name);
        cartArray = listCart();
    displayShow()
    });
 
//***************************************************************************
    function listCart(){
 
        var cartCopy = new Array;
        for(var i in cartWhisky) {
            var item = cartWhisky[i];
            var itemCopy = {};
            for (var p in item) {
                itemCopy[p] = item[p];
            }
            itemCopy.total = (item.price * item.quantity).toFixed(2);
            cartCopy.push(itemCopy);
        }
        return cartCopy;
    }
//RemoveItemsFromCart(name) //Remove only one
    function removeOneItemsFromCart(name){
        for(var i in cartWhisky) {
            if (cartWhisky[i].name === name) {//"3" == 3 true, "3"===3 false - because "3" is a string
                cartWhisky[i].quantity -= 1;
                if (cartWhisky[i].quantity ===0) {
                    //Метод splice() изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.
                    cartWhisky.splice(i,1);
                }
                break;
            }
        }
        saveCart();
        displayShow();
    }
//addItemsToCart
    function addOneItemsToCart(name){
        for(var i in cartWhisky) {
            if (cartWhisky[i].name === name) {
                cartWhisky[i].quantity ++;
                if (cartWhisky[i].quantity ===0) {
                    cartWhisky.splice(i,1);
                }
                break;
            }
        }
        saveCart();
        displayShow();
    }
 
//RemoveAllItemsFromCart()  //Remove all
    function removeAllItemsFromCart(name) {
        for(var i in cartWhisky) {
            if(cartWhisky[i].name === name) {
                cartWhisky.splice(i, 1);
                break;
            }
        }
        saveCart();
        displayShow();
    }
 
//clearCart()
    function clearCart() {
        cartWhisky = [];
        saveCart();
    }
 
//countCart() -->return total count Summary count all item in cart
    function countCart(){
        var totalCount = 0;
        for(var i in cartWhisky) {
            totalCount += cartWhisky[i].quantity;
        }
        return totalCount;
    }
 
//totalCart() --> return total cost Summary value price all item in cart
    function totalPriceInCart() {
 
        var totalPrice = 0;
        for(var i in cartWhisky) {
            totalPrice = cartWhisky[i].price * cartWhisky[i].quantity + totalPrice;
        }
        //toFixed() - кол-во знаков после запятой
        return totalPrice.toFixed(2);
    }
 
});
0
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
06.08.2016, 22:42
Ну вроде понятно. Ты же ведь при начальной загрузке страницы в переменную cartWhisky записываешь пустой массив. И не делаешь проверку на наличие значения в localStorage по ключу shoppingCart. Вот если там все-таки значения имеются, то надо бы его записать в переменную cartWhisky.
JavaScript
1
2
3
4
var cartWhisky = [];
if ( localStorage.getItem("shoppingCart") ) {
    cartWhisky = JSON.parse( localStorage.getItem("shoppingCart") );
}
0
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
06.08.2016, 23:09  [ТС]
при таком варианте, оно видит первое добавление и добавляет новое кол-во как стринг, т.е. если я изначально "купил" 1, то потом, если докупаю 5, выдает 15, хотя Number стоит
0
странник
 Аватар для Donald28
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
06.08.2016, 23:35
JavaScript
1
quantity=parseInt( cartWhisky[i].quantity ) + parseInt( quantity );
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2016, 23:35
Помогаю со студенческими работами здесь

дана строка s подсчитать колво четных цифр
я на экзамене язык си задачи:дана строка s подсчитать колво четных цифр 2)подсчитать колвочетных элементов масивеа

Посчитать колво чисел, сумма которых равна 13
6-ти значное число счастливое, если сумма первых трех цифр равна сумме последних трех. Посчитать кол-во чисел, сумма которых равна 13

Найти ошибки, колво дней между датами
Не могу понять почему выводит 0 вродя все правильно, буду очень благодарен! #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Как ограничить колво вводимых цифр в поле?
Здравствуйте! Подскажите пожайлуста как ограничить колво вводимых цифр в поле? есть поле номер отдела, необходимо сделать чтобы в это...

Вывести колво книг каждого автора и отсортировать по авторам
фамилия автора, название, издательство, год. Вывести колво книг каждого автора и отсортировать по авторам, вывести список


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru