Menro
web, seo, email, hack
- Регистрация
- 27 Янв 2008
- Сообщения
- 689
- Реакции
- 138
- Автор темы
- #1
Всем привет!
Сегодня на сайте пришлось сделать небольшой калькулятор товаров, всё получилось, всё работает. Но я столкнулся с проблемой, что каждый элемент я указываю явно. Мой код заточен под 2 товара и если их будет 3, то он работать не будет.
Связи с этим прошу помощи с оптимизацией кода таким образом, что не ему было не важно сколько товаров будет.
Вообщем мне надо как-то два массива между собой посчитать.
Возможно вообще как-то в один массив объединить.
Короче опыта не хватает, не пойму как правильно сделать.
Признателен за любую помощь.
Сегодня на сайте пришлось сделать небольшой калькулятор товаров, всё получилось, всё работает. Но я столкнулся с проблемой, что каждый элемент я указываю явно. Мой код заточен под 2 товара и если их будет 3, то он работать не будет.
Связи с этим прошу помощи с оптимизацией кода таким образом, что не ему было не важно сколько товаров будет.
PHP:
var quantity = []; //массив куда указывается общее количество товаров которые хочет купить человек (штуки)
var prices = []; // массив который хранит все цены на выбранные товары
//Собственно записываем в массив цены
jQuery('input[name="price"]').each(function( index ) {
quantity.push(jQuery( this ).val());
});
//И количество
jQuery('.item .amount').each(function( index ) {
prices.push(jQuery( this ).text().replace(/[^0-9]/g, ''));
});
//Далее я горожу вот такой огород. Обращаюсь к первому товару через quantity[0] - беру количество заказываемое, затем беру prices[0] (цену за этот товар) и перемножаю в total_price_item_1.
//тут обращаюсь с конкретным индексам и беду количество и суммы
var quantity_1 = quantity[0];
var quantity_2 = quantity[1];
var prices_1 = prices[0];
var prices_2 = prices[1];
//Здесь всё перемножаю и вывожу итоговую сумму.
var total_price_item_1 = parseInt(quantity_1)*parseInt(prices_1);
var total_price_item_2 = parseInt(quantity_2)*parseInt(prices_2);
var total_price = total_price_item_1+total_price_item_2;
var total_quantity = parseInt(quantity_1)+parseInt(quantity_2);
//Тут уже вывод
jQuery('.price-total').empty();
jQuery('.price-total').append(thousandSeparator(total_price) + ' ₽');
jQuery('.day-total').empty();
jQuery('.day-total').append(total_quantity + ' шт.');
}
calc();
jQuery('input[name="price"]').change(function() {
calc();
});
Вообщем мне надо как-то два массива между собой посчитать.
Возможно вообще как-то в один массив объединить.
Короче опыта не хватает, не пойму как правильно сделать.
Признателен за любую помощь.