Используйте массивы для суммирования значений на основе заголовка или атрибута alt - PullRequest
0 голосов
/ 01 декабря 2010

Форма расчета имеет параметры и в зависимости от того, что вводит клиент, определяет, какие продукты загружаются на боковой панели. Продуктам присваивается количество, которое напрямую отражает это значение опциона.

Таким образом, теперь для каждого продукта указана общая цена, общая продолжительность и общее количество погружений.

num1=Number(document.getElementById('product_quantity_' + productid).value);
num2=Number(document.getElementById('product_price_' + productid).value);
nums=num1*num2;
document.getElementById('product_price_total_' + productid).value = nums;

num1=Number(document.getElementById('product_quantity_' + productid).value);
num2=Number(document.getElementById('product_duration_' + productid).value);
nums=num1*num2;
document.getElementById('product_duration_total_' + productid).value = nums;

num1=Number(document.getElementById('product_quantity_' + productid).value);
num2=Number(document.getElementById('product_dives_' + productid).value);
nums=num1*num2;
document.getElementById('product_dives_total_' + productid).value = nums;

num1=Number(document.getElementById('product_quantity_' + productid).value);
num2=Number(document.getElementById('product_hire_' + productid).value);
nums=num1*num2;
document.getElementById('product_hire_total_' + productid).value = nums;

Так что теперь нам нужен скрипт, который дает нам общую итоговую цену всех - 'product_price_total_' + productid) .value - и еще один для общей итоговой продолжительности, а третий - для общих итоговых погружений и т. Д. ...

Не уверен, каким образом, но несколько идей - это массив, в который добавляются только поля с определенным тегом alt или тегом title.

У кого-нибудь есть идеи.

Спасибо

Ответы [ 2 ]

0 голосов
/ 02 декабря 2010

Чудесные рабочие парни, спасибо за помощь.Очень хорошая командная работа - полный окончательный код.

функция product_analysis (адрес, поле) {if (box.checked) {

$('#product_' + box.alt).load(address);

}
else {

$('#product_' + box.alt).load('http://www.divethegap.com/update/blank.html');

}
document.getElementById('product_quantity_PRI_' + box.alt).value = box.value;

};

varproductIds = {};

function product_totals (id) {productIds [id] = true;// сохраняем все идентификаторы по мере того, как вычисляются суммы var var = $ c ('product_quantity_' + id) .value;переменная цена = $ 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);

}
}

function totalTotals () {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);

}

}

0 голосов
/ 01 декабря 2010

Как насчет этого?(Используя ту же функцию $ (), что и у Шиме Видаса выше)

var productIds = {};

function product_totals(id) {
    productIds[id] = true; // store all id's as the totals are calculated
    ....
}

function totalTotals() {
    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 += $('product_price_total_' + id).value*1;
        totalDurationTotal += $('product_duration_total_' + id).value*1;
        totalDivesTotal += $('product_dives_total_' + id).value*1;
        totalHireTotal += $('product_hire_total_' + id).value*1;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...