06.11.2019, 13:17
|
Интересующийся
|
|
Регистрация: 21.10.2019
Сообщений: 19
|
|
Нет Размер 30*30, тип3, выходит 400, рамка 2, должно получится 750, калькулятор считает 700.
|
|
06.11.2019, 13:22
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от joyandjoy
|
должно получится 750
|
С чего вдруг?
Размер 30*30 - это индекс 2. Далее по вашим ценам:
Для типа 3 это значение из массива: [300,350,400][2] = 400.
Для рамки 2 это значение из массива: [200,250,300][2] = 300.
400 + 300 = 700
|
|
06.11.2019, 13:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
А, да, надо было цены из таблицы вставлять в массивы не построчно, а брать из столбцов. Ну это не проблема, сейчас исправим.
|
|
06.11.2019, 13:33
|
Интересующийся
|
|
Регистрация: 21.10.2019
Сообщений: 19
|
|
Берм размер 20*20, тип 3, цена 300, рамку 2, цена 550, а калькулятор выводит 500.
|
|
06.11.2019, 13:33
|
Интересующийся
|
|
Регистрация: 21.10.2019
Сообщений: 19
|
|
А ок
|
|
06.11.2019, 13:35
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Исправлено, теперь верно?
|
|
06.11.2019, 13:41
|
Интересующийся
|
|
Регистрация: 21.10.2019
Сообщений: 19
|
|
Вроде как да Спасибо. Еще такой момент остался, если пользователь не выбрал рамку или упаковку, как отобразить текущую цену?
|
|
06.11.2019, 13:48
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от joyandjoy
|
Еще такой момент остался, если пользователь не выбрал рамку или упаковку, как отобразить текущую цену?
|
А как он может не выбрать рамку, если у вас этот список обязателен для выбора? Упаковка понятно, она не обязательна, поэтому в расчете и проверяется значение списка, и по результату берется либо значение из массива, либо 0. В противном случае, при обязательном выборе всех списков, такая проверка не нужна.
|
|
06.11.2019, 13:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Если нужно чтобы расчет производился в любом случае, то убрать условие и так:
$('#order').on('change', 'select', function(e) {
var f = e.delegateTarget, p = $('select', f), v = 0, size = p.eq(0).val()-1;
$.each(p.slice(1), function() {
v += this.value ? $(this).children(':selected').data('price')[size] : 0
});
f.total.value = v;
});
|
|
06.11.2019, 13:55
|
Интересующийся
|
|
Регистрация: 21.10.2019
Сообщений: 19
|
|
Сообщение от laimas
|
А как он может не выбрать рамку, если у вас этот список обязателен для выбора? Упаковка понятно, она не обязательна, поэтому в расчете и проверяется значение списка, и по результату берется либо значение из массива, либо 0. В противном случае, при обязательном выборе всех списков, такая проверка не нужна.
|
Сообщение от joyandjoy
|
есть 4 пункта, все 4 надо выбрать (кроме последних двух, они не обязательны, но если выбираются, то нужно добавлять к основной сумме).
|
Сообщение от joyandjoy
|
Выбор рамки (необязательно) - Рамка2
Выбор упаковки (необязательно) - Зеленая
|
Обязателен только размер и тип. Рамка и упаковка не обязательны, т.е. если человеку нужна только упаковка то складываем цену изделия базовую и упаковку, если рамка только, то базовая цена и рамка, если и то и то, то базовая цена + рамка + упаковка.
|
|
|
|