Продолжение с решетчатого случая с новой проблемой. Следующий код вычисляет значения, которые загружаются через ajax из другого сценария. Ряд вариантов в другой форме определяет, какая информация загружается и, следовательно, какие окончательные вычисления.Вычисление значений, загружаемых через jquery
Проблема заключается в том, что после того, как вы загрузили все доступные параметры, вы не сможете их загрузить, и скрипт, который суммирует все итоговые значения полей, на самом деле не работает на этом этапе. Так, например, если вы загрузите в 2 варианта, у него будет сумма. Загрузите третью часть, и она суммирует общее количество всех. Возьмите один вариант и сценарий завершится неудачей. Я считаю, что это что-то делать с тем, как сценарий извлекает идентификаторы продукта — var productIds = {};
Любая помощь будет оценена
Вот код
var productIds = {};
function product_totals(id) {
productIds[id] = true; // store all id's as the totals are calculated
var quantity = $c('product_quantity_' + id).value;
var price = $c('product_price_' + id).value;
var duration = $c('product_duration_' + id).value;
var dives = $c('product_dives_' + id).value;
var hire = $c('product_hire_' + id).value;
Number($c('product_price_total_' + id).value = price * quantity);
Number($c('product_duration_total_' + id).value = duration * quantity);
Number($c('product_dives_total_' + id).value = dives * quantity);
Number($c('product_hire_total_' + id).value = hire * quantity);
function $c(id) {
return document.getElementById(id);
}
var totalPriceTotal = 0;
var totalDurationTotal = 0;
var totalDivesTotal = 0;
var totalHireTotal = 0;
for (var id in productIds) {
// multiply by 1 to make sure it's a number
totalPriceTotal += $c('product_price_total_' + id).value * 1;
totalDurationTotal += $c('product_duration_total_' + id).value * 1;
totalDivesTotal += $c('product_dives_total_' + id).value * 1;
totalHireTotal += $c('product_hire_total_' + id).value * 1;
}
$c('GT_total_price').value = totalPriceTotal;
$c('GT_total_duration').value = totalDurationTotal;
$c('GT_total_dives').value = totalDivesTotal;
$c('GT_total_hire').value = totalHireTotal;
function $c(id) {
return document.getElementById(id);
}
}
работает образец на http://www.divethegap.com/update/diving-trips/adventure-training/#level_01 (нажмите на начинающих) Many Thanks
Сортировка, не совсем уверенная, что это вполне удастся. Параметры определяют, что загружено с правой стороны. Загруженные продукты содержат информацию (Цена и т. Д.). Когда опция отменяется, ее ассоциированный продукт загружается с правой стороны. Сценарий выше вычисляет информацию в правой части, но не обновляет свою коллекцию ProductID при загрузке продукта. Есть идеи. – 2010-12-02 15:48:01