У меня простая страница продукта с несколькими вариантами. Каждый раз, когда выбирается опция, значения отправляются в php. Существует одна опция, которая рассчитывает дополнительную плату на основе общей
. Это проблема. После выбора опции все вычисления выполняются в бэкэнде, добавляется и возвращается%, что отлично работает. но я хотел бы показать общий +% отдельно в теге span. но он работает для первого значения, а остальные неверны
, поэтому допустим, что пользователь нажимает Day 1
, который имеет 10% дополнительных
- Расчет выполнен, и 10 % добавляется к итоговой сумме в файле php.
- Я делаю дополнительный расчет на основе полученной суммы, вычитаю% из общей суммы и отображаю ее
- Если общая сумма равна 198 (включая 10%, добавленные при нажатии), он должен показать День 1 180,00 + 18,00 (10%) День 2 180,00 + 36,00 (20%) День 3 180,00 + 54,00
В коде, который я написал, он правильно вычисляет только значение щелчка, а остальное неверно .. также каждый раз, когда я щелкаю, он пересчитывает и показывает другое значение.
К сожалению, я не могу редактировать файл php, поэтому мне приходится работать с суммой, которая возвращается в JavaScript. Таким образом, каждый раз, когда пользователь нажимает на опцию, он вычисляет общую сумму
Я не уверен, что это можно сделать, но любая помощь будет оценена.
$.ajax({
url: 'calculation.php',
type: 'POST',
data: option_data,
success: function(total) {
$('.total').each((index, item) => {
const dateRef = +($(item).attr("data-ref")); //percentage
var grabtot = thistotal.split(" ")[2].replace(',', '.');
var theid = $(item).attr("id");
var amount = (dateRef / 100) * grabtot;
var without_percentage = parseFloat(grabtot) - parseFloat(amount);
$('#' + theid).html("+ € " + amount.toFixed(2).replace(".", ","));
})
}
});
<ul>
<li class="radio">
<label class="img2">
<input type="radio" class="radio" style="display:none;" name="option[979]" value="2497">
<span>
<h3>Day 1</h3>
<p>
<span class="total" id="del-1" data-ref="10.00"></span>
</p>
</span>
</label>
</li>
<li class="radio">
<label class="img2">
<input type="radio" class="radio" style="display:none;" name="option[980]" value="2597">
<span>
<h3>Day 5</h3>
<p>
<span class="total" id="del-2" data-ref="20.00"></span>
</p>
</span>
</label>
</li>
<li class="radio">
<label class="img2">
<input type="radio" class="radio" style="display:none;" name="option[959]" value="2407">
<span>
<h3>Day 7</h3>
<p>
<span class="total" id="del-3" data-ref="30.00"></span>
</p>
</span>
</label>
</li>
</ul>
РЕДАКТИРОВАТЬ
какой будет расчет. php возврат?
Это собственно система бронирования. В бланке будет указана стоимость товара, упаковка, доставка и возврат дней
- , поэтому при стоимости книги 10,00
- упаковка 3,00
- доставка 5,00
- дней возврата, процентное значение которого выбрано. Таким образом, если выбран 1 день, сумма будет составлять 20% от суммы
например: 10 + 3 + 5 = 18 плата за 1 день 20% от 18, что составляет 3,6
всего будет возвращено 21,6
функция будет вызываться каждый раз, когда будет нажата опция