Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481

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

05.08.2016, 12:33. Показов 543. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru