Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/155: Рейтинг темы: голосов - 155, средняя оценка - 4.66
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56

Создание калькулятора для расчёта стоимости продукции

16.02.2014, 11:31. Показов 33015. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!

Очень прошу помощи в решении следующей задачи (в js я полный ноль, могу лишь прикрутить к сайту готовый скрипт, чуть-чуть подредактировать, а вот чтобы самой написать...)

В общем, необходимо сделать калькулятор расчёта стоимости продукции для сайта. Я нашла несколько примеров, пыталась в них разобраться, у меня получился калькулятор для решения простеньких примеров, берущий значения относительно данных в checkbox и combobox, но у меня (как мне кажется) более сложный механизм должен получиться...

Во-первых, комбобоксы должны принимать свои значения относительно предыдущих, например, если в первом мы выбираем значение "1", то во втором будут на выбор значения "11" и "111", если в первом выбираем значение "2", то во втором будут значения "22" и "222", и т. д.

Во-вторых, расчёт стоимости должен производиться относительно количества товара, например, если хотим от 1 до 100 ед. товара, то одна единица нам обойдётся в 30 рублей, если хотим от 101 до 500 ед. товара, то дна единица уже будет стоить 25 рублей, и т. д.

-------------------------

P.S.: я понимаю, что просить у Вас готовое решение - это хамство, поэтому на него и не надеюсь, но очень прошу помочь разобраться максимально доступным языком, для меня это тёмный лес

Заранее спасибо за помощь!
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2014, 11:31
Ответы с готовыми решениями:

Создание формы расчета стоимости кассет
Добрый день. Нужна ваша помощь;) Сайт я создал html и сss освоил на люб. уровне. А вот php и ajax ни как не хватает времени. ...

Калькулятор для расчета кубатуры и продукции
Добрый день. Нужен в точности такой же калькулятор для расчета квадратуры и предложения соответствующих продуктов, просмотрел много...

Для каждого предприятия определить его долю стоимости производимой продукции
Написать программу с использованием модулей (описания массива, ввод-вывод и обработки) и конечно процедур и функций Каждое из N ...

19
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
16.02.2014, 15:54
Цитата Сообщение от Kykysik12 Посмотреть сообщение
я понимаю, что просить у Вас готовое решение - это хамство, поэтому на него и не надеюсь, но очень прошу помочь разобраться максимально доступным языком, для меня это тёмный лес
неверно понимаете

много легче дать вам готовое решение, чем непонятно в чём разбираться
но готовое решение возможно в том случае, если вы максимально подробно опишете желаемое вами
не со словами "например, если", а чётко и конкретно

лучше всего - напишите HTML-код с вашими комментариями, из которых будет ясен алгоритм - что куда вводится, что выбирается и где (и как) результат выводится
1
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
16.02.2014, 19:16
Цитата Сообщение от Kykysik12 Посмотреть сообщение
Во-первых, комбобоксы должны принимать свои значения относительно предыдущих, например, если в первом мы выбираем значение "1", то во втором будут на выбор значения "11" и "111", если в первом выбираем значение "2", то во втором будут значения "22" и "222", и т. д.
Видел такое из коробки в Kendo UI (cascading combobox), самому, в прочем, тоже можно такое запилить.
0
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
16.02.2014, 21:55  [ТС]
kalabuni, Необходимо создать калькулятор, высчитывающий стоимость выбранной продукции. Будет три combobox и один checkbox. В первом комбобоксе будет "Тип продукции" (медали или значки), во втором "Диаметр", в третьем "Тип технологии". Для каждого из двух типов продукции свой диаметр и тип технологии. Чекбоксом будем отмечать наличие либо отсутствие 3D-штампа. Количество товара выбираем ползунком (диапазон от 100 до 10001).

Для значков цена за одну единицу меняется в зависимости от количества товара, диаметра и типа технологии. Для медалей только от диаметра и типа технологии. Цена штампа у обоих типов продукции меняется в зависимости от диаметра.

Формула расчёта итоговой стоимости (общая):
Стоимость = (кол-во * цена за единицу) + стоимость штампа
Если стоит галочка на 3D, то стоимость штампа умножается на 2.

Прайс я прикрепила (это лишь малая его часть, он просто огромный). Если сделаете хотя бы на эти данные, я буду очень благодарна! Остальное забью сама...

------------------------------------

Так же буду очень признательна, если в зависимости от итоговой стоимости будет меняться высота столбика (пример на сайте "янастасия.рф", но у меня столбик будет только один. Один столбик, один ползунок, 3 комбобокса и один чекбокс).

Заранее спасибо!
Вложения
Тип файла: docx Документ Microsoft Word.docx (18.1 Кб, 55 просмотров)
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.02.2014, 07:29
а теперь я попробую изложить вами написанное нормальным человеческим языком так, как я это понял:

-- пользователь первым делом видит на странице один-единственный список <select> с предложением "Выберите тип продукции"

-- раскрыв этот список, он увидит две альтернативы - "Медали" и "Значки"

-- выбрав что-то одно, пользователь увидит появившиеся на странице ещё два списка <select>:
первый с предложением "Выберите диаметр" (как я понял - диаметр значка/медали)
и второй с каким-то дико-непонятным предложением "Выберите тип технологии" (пользователю вообще-то до фени - как вы будете нужное ему делать, хоть суперсовременным лазером в космическом центре, хоть на коленке трупа в городском морге)

-- ещё пользователю будет показан какой-то чекбокс, с надписью рядом "Имеется 3D-штамп", т.е. пользователю предложено угадать - есть у вас такой штамп или его у вас нету (интересно, за угадывание скидку пользователь получит?)

-- кроме того, на странице появится ползунок

-- выбрав "Диаметр", ткнув в какой-то неизвестный юзеру "Тип технологии", а также угадав/не угадав наличие/отсутствие у вас какого-то 3D-штампа, пользователь двигает ползунок на нужное положение и... впадает в ступор: он хочет увидеть - во сколько ему это дело обойдётся, но никакого поля/места для вывода этого значения пользователь на странице не находит... и в отчаянии, прокляв тот день, когда он сел за баранку этого пылесоса, покидает вашу страницу и уходит к вашим конкурентам
------------------

PS. ваш файл у меня не прочитался, какой-то косяк с кодировкой
0
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
17.02.2014, 08:03  [ТС]
kalabuni, я понимаю, что для пользователя не важно, как будет делаться его заказ, но такой бзик у директора фирмы, ведь в зависимости от типа технологии меняется и цена заказа... Уже третий день пытаюсь разобраться с этой белебердой

Вообще всё будет выглядеть вот таким образом (скрин приложила). Все компоненты должны быть видны сразу, лишь наполнение в них меняется в зависимости от вида продукции.

В приложенном документе был небольшой кусочек прайса, для наглядности, чтобы показать, в зависимости от каких параметров меняется цена изделия... Его я тоже приложила, но скриншотом
Миниатюры
Создание калькулятора для расчёта стоимости продукции   Создание калькулятора для расчёта стоимости продукции   Создание калькулятора для расчёта стоимости продукции  

0
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
17.02.2014, 11:20  [ТС]
Вот, какие наброски получились у меня. Не могу понять, как прописать дополнительные условия?
"Если тип изготовления №1, диаметр 12мм и количество 100шт, то цена за единицу товара = 0,91, цена штампа = 132"
"Если тип изготовления №2, диаметр 33мм и количество 1500шт, то цена за единицу товара = 0,63, цена штампа = 151"
И т. д.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 function calc() { 
 
 var type_tip = document.getElementById("type_tip"); 
 
 var type_diam = document.getElementById("type_diam"); 
 
 var kolvo = document.getElementById("kolvo"); 
 
 var type_3d = document.getElementById("type_3d"); 
 
 var tehn = document.getElementById("tehn");
 
 //Result
 var result = document.getElementById("result_tip"); 
 
 var result = document.getElementById("result_diam");
 
 var result = document.getElementById("kolvo");
 
 var result = document.getElementById("tehn");
 
 var result = document.getElementById("result");
 
 var price_tip = 0; 
 var price_diam = 0; 
 var price_3d = 0;
 var price_tehn = 0;
 var price_kolvo = 0;
 var price = 0; 
 price_tip += parseInt(type_tip.options[type_tip.selectedIndex].value); 
 price_diam += parseInt(type_diam.options[type_diam.selectedIndex].value); 
 price_tehn += parseInt(tehn.options[tehn.selectedIndex].value); 
 price_3d += (type_3d.checked == true) ? parseInt(type_3d.value) : 1;
 price_kolvo += parseInt(kolvo.value);
 price=(price_kolvo * price_diam) + 132 * price_3d;
 
 
 result_tip.innerHTML = price_tip; 
 result_diam.innerHTML = price_diam;
 result_3d.innerHTML = price_3d;
 result_tehn.innerHTML = price_tehn;
 result_kolvo.innerHTML = price_kolvo;
 result.innerHTML = price;
 }

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<table>
<tr>
<td width="150">Тип продукции</td>
<td width="100"><select onchange="calc()" id="type_tip">
<option value="1">Медали</option>
<option value="2">Значки</option>
</select>
</td>
<td width="200"><span id="result_tip">1</span></td>
</tr>
 
 <!--kolvo//-->  
<tr>
<td width="150">Количество</td>
<td width="100"><input type="text" id="kolvo" value="0" onchange="calc()" /></td>
<td width="200"><span id="result_kolvo">0</span></td>
</tr>
 
 <!-- diam// --> 
<tr>
<td width="150">Диаметр</td>
<td width="100"><select onchange="calc()" id="type_diam">
<option value="1,25">30</option>
<option value="1,29">40</option>
<option value="1,3">50</option>
<option value="1,5">60</option>
</select>
</td>
<td width="200"><span id="result_diam">0</span> руб.</td>
</tr>
 
 <!--tehn//-->  
<tr>
<td width="150">Технология</td>
<td width="100"><select onchange="calc()" id="tehn">
<option value="1">Штамп</option>
<option value="2">Литьё</option>
</select>
</td>
<td width="200"><span id="result_tehn">0</span></td>
</tr>
 
 <!-- 3d// -->
<tr>
<td width="150">3D</td>
<td width="100"><input type="checkbox" onchange="calc()" value="2" id="type_3d" /></td>
<td width="200"><span id="result_3d">1</span></td>
 </tr>
 
<!-- Итог --> 
<tr>
<td width="250" class="td_result">ИТОГО:</td>
<td class="td_result"><span id="result">0</span> руб.</td>
</tr>
</table>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.02.2014, 13:00
для масштабирования "столбика" мне нужны:
-- итоговая сумма 100 штук самой дешёвой продукции (без 3D-штампа)
-- итоговая сумма 10001 штук самой дорогой продукции (вместе с 3D-штампом, разумеется)
0
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
17.02.2014, 13:11  [ТС]
kalabuni,
100 штук самой дешёвой продукции обойдутся в 171р.
10001 штук самой дорогой продукции (с 3D-штампом) обойдутся в 98000р.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.02.2014, 15:44
Лучший ответ Сообщение было отмечено Kykysik12 как решение

Решение

изучайте
3
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
17.02.2014, 15:57  [ТС]
kalabuni, оО просто нет слов... Всё чётко, ясно и понятно, Вы гений!) Я даже не знаю, как Вас благодарить)))
0
 Аватар для zhibirc
651 / 236 / 77
Регистрация: 18.02.2013
Сообщений: 784
17.02.2014, 16:00
Если что - красота на третьей картинке может быть легко набросана в конструкторе jQueryUI и фактически использована с кодом, приведенным там же в примерах.
0
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
17.02.2014, 22:25  [ТС]
!i, ну красоту я буду прописывать в css, пока для меня это проще, я только учусь работать со скриптами)

Добавлено через 5 часов 29 минут
kalabuni, Вы не могли бы мне ещё немного помочь? Калькулятор работает отлично, все данные я забила, но при попытке выложить его на свой сайт столкнулась с проблемой: на моём сайте он работать не хочет

Добавлено через 53 минуты
Разобралась, что мешает, но не знаю, как устранить проблему Мешает скрипт таймера, вот его код:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    function CountBox() {
        dateNow = new Date();
        amount = ((23 - dateNow.getHours())*60*60 + (59 - dateNow.getMinutes())*60 + (60 - dateNow.getSeconds()))*1000;
        delete dateNow;
        if (amount < 0) {
            out = "<div class='countbox-num'><div class='countbox-days1'><span></span>0</div><div class='countbox-days2'><span></span>0</div><div class='countbox-days-text'></div></div>" + 
            "<div class='countbox-space'></div>" +
            "<div class='countbox-num'><div class='countbox-hours1'><span></span>0</div><div class='countbox-hours2'><span></span>0</div><div class='countbox-hours-text'></div></div>" + 
            "<div class='countbox-space'></div>" +
            "<div class='countbox-num'><div class='countbox-mins1'><span></span>0</div><div class='countbox-mins2'><span></span>0</div><div class='countbox-mins-text'></div></div>" + 
            "<div class='countbox-space'></div>" +
            "<div class='countbox-num'><div class='countbox-secs1'><span></span>0</div><div class='countbox-secs2'><span></span>0</div><div class='countbox-secs-text'></div></div>";
            var list = document.getElementsByClassName("countbox");
            for (var i = 0; i < list.length; i++) {
                list[i].innerHTML = out;
            }
            setTimeout("CountBox()", 10000)
        } else {
            days = 0;
            days1 = 0;
            days2 = 0;
            hours = 0;
            hours1 = 0;
            hours2 = 0;
            mins = 0;
            mins1 = 0;
            mins2 = 0;
            secs = 0;
            secs1 = 0;
            secs2 = 0;
            out = "";
            amount = Math.floor(amount / 1e3);
            days = Math.floor(amount / 86400);
            days1 = (days >= 10) ? days.toString().charAt(0) : '0';
            days2 = (days >= 10) ? days.toString().charAt(1) : days.toString().charAt(0);
            amount = amount % 86400;
            hours = Math.floor(amount / 3600);
            hours1 = (hours >= 10) ? hours.toString().charAt(0) : '0';
            hours2 = (hours >= 10) ? hours.toString().charAt(1) : hours.toString().charAt(0);
            amount = amount % 3600;
            mins = Math.floor(amount / 60);
            mins1 = (mins >= 10) ? mins.toString().charAt(0) : '0';
            mins2 = (mins >= 10) ? mins.toString().charAt(1) : mins.toString().charAt(0);
            amount = amount % 60;
            secs = Math.floor(amount);
            secs1 = (secs >= 10) ? secs.toString().charAt(0) : '0';
            secs2 = (secs >= 10) ? secs.toString().charAt(1) : secs.toString().charAt(0);
            out = "<div class='countbox-num'><div class='countbox-days1'><span></span>" + days1 + "</div><div class='countbox-days2'><span></span>" + days2 + "</div><div class='countbox-days-text'></div></div>" + 
            "<div class='countbox-space'></div>" +
            "<div class='countbox-num'><div class='countbox-hours1'><span></span>" + hours1 + "</div><div class='countbox-hours2'><span></span>" + hours2 + "</div><div class='countbox-hours-text'></div></div>" + 
            "<div class='countbox-space'></div>" +
            "<div class='countbox-num'><div class='countbox-mins1'><span></span>" + mins1 + "</div><div class='countbox-mins2'><span></span>" + mins2 + "</div><div class='countbox-mins-text'></div></div>" + 
            "<div class='countbox-space'></div>" +
            "<div class='countbox-num'><div class='countbox-secs1'><span></span>" + secs1 + "</div><div class='countbox-secs2'><span></span>" + secs2 + "</div><div class='countbox-secs-text'></div></div>";
            var list = document.getElementsByClassName("countbox");
            for (var i = 0; i < list.length; i++) {
                list[i].innerHTML = out;
            }
            setTimeout("CountBox()", 1e3)
        }
    }
    window.onload = function () {
        CountBox()
    }
1
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.02.2014, 04:22
window.onload (или просто onload) переводится как "момент, когда страница в окне браузера полностью загрузилась"

и этот момент происходит только один раз

вы своим скриптом назначаете браузеру на это событие одну свою функцию
window.onload = function () {CountBox()}
а затем на это же событие вы "навешиваете" ещё одну (уже мою) функцию
onload = function () {for (var elms = ... myFunc ()}

т.е. вы отправляете браузер в кино, и тут же отправляете его в аптеку, т.е. одна нога здесь, другая - там
а браузер у вас один - раздвоиться он не может

решение простое - надо конкретно указать браузеру: сначала в кино, и только потом - в аптеку
всё то, что написано в моём коде между первой открывающей фигурной скобкой { и последней закрывающей фигурной скобкой } вам следует поместить внутрь одной инструкции, после вызова вашей функции, т.е. сделать вот так:
window.onload = function ()
{
CountBox(); // ваш код
// и сразу после него
for (var elms = ... myFunc (); // мой код
}
1
 Аватар для Kykysik12
3 / 3 / 0
Регистрация: 19.11.2013
Сообщений: 56
18.02.2014, 10:49  [ТС]
kalabuni, Получилось, большое спасибо!) Про onload я запомню))
0
2 / 2 / 0
Регистрация: 15.08.2013
Сообщений: 36
25.10.2014, 11:06
калькулятор для листа продуктов по категориям. подсчитывается сумма в категории и общий прайс

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                    $('[name=quantity]').bind('change keyup', calcPrice);
                    $('[name=checkItem]').change(calcPrice);
                }
            );
            function calcPrice() {
                var tableObj = getParent(this, "TABLE");
                var trParentObj = getParent(this, "TR");
                var checkBox = $(trParentObj).find('[name = checkItem]');
                var quantity = $(trParentObj).find('[name = quantity]');
                var oldQ = $(trParentObj).find('[name = oldQ]');
                var price = $(trParentObj).find('[name = price]');
                var spanObj = $('#' + tableObj.id.slice(0, -5) + 'Price');
                var oldSum, newSum, diff;
                proverka(quantity.get(0));
 
                if (checkBox.is(':checked') && quantity.val() == '' && $(this).attr('name') == 'checkItem') {
                    quantity.val(1);
                    oldSum = parseFloat(spanObj.text());
                    newSum = oldSum + parseFloat(price.text());
                    spanObj.text(newSum);
                    oldQ.val(quantity.val());
 
                } else {
                    if (!checkBox.is(':checked') && quantity.val() != '' && $(this).attr('name') == 'quantity') {
                        checkBox.prop('checked', true);
                        oldSum = parseFloat(spanObj.text());
                        newSum = oldSum + parseFloat(price.text())*parseInt(quantity.val());
                        spanObj.text(newSum);
                        oldQ.val(quantity.val());
                    } else {
                        if (checkBox.is(':checked') && quantity.val() != '' && $(this).attr('name') == 'quantity') {
 
                            if (parseInt(quantity.val()) > parseInt(oldQ.val())) {
                                diff = parseInt(quantity.val()) - parseInt(oldQ.val());
                                oldSum = parseFloat(spanObj.text());
                                newSum = oldSum + parseFloat(price.text()) * diff;
                                spanObj.text(newSum);
                            }
 
                            if (parseInt(quantity.val()) < parseInt(oldQ.val())) {
                                diff = parseInt(parseInt(oldQ.val() - quantity.val()));
                                oldSum = parseFloat(spanObj.text());
                                newSum = oldSum - parseFloat(price.text()) * diff;
                                spanObj.text(newSum);
                            }
                            oldQ.val(quantity.val());
                        } else {
                            if (!checkBox.is(':checked') && quantity.val() != '' && $(this).attr('name') == 'checkItem') {
                                diff = parseInt(quantity.val());
                                quantity.val('');
                                oldSum = parseFloat(spanObj.text());
                                newSum = oldSum - parseFloat(price.text()) * diff;
                                spanObj.text(newSum);
                                oldQ.val(0);
                            }
                        }
                    }
                }
                if (quantity.val() == '0') {
                    checkBox.prop('checked', false);
                    quantity.val('');
                }
                totalPrice();
            }
 
            function totalPrice() {
                var spanArray = $('span.catPrice');
                var totPrice = $('#totalPrice');
                var sum = 0;
                for (var i = 0; i < spanArray.length; i++) {
                    var span = spanArray.eq(i);
                   sum = sum + parseFloat(span.text());
                }
                totPrice.text(sum);
            }
            function proverka(input) {
                input.value = input.value.replace(/[^\d]/g, '');
            };
            function getParent(el, parentTagName) {
                var obj = el;
                while (obj.tagName != parentTagName) {
                    obj = obj.parentNode;
                }
                return obj;
            }
 
        </script>
    </head>
    <table id="categoryTable">
        <tr id="Product1">
            <td>Product1</td>
            <td>m2</td><td name="price">500</td>
            <td><input name="quantity" type="text" maxlength="3" size="2" value="" autocomplete="off"/><input name="oldQ" type="hidden" value="0"/></td>
            <td><input name="checkItem" autocomplete="off" type="checkbox"/></td>
        </tr>
        <tr id="Product2">
            <td>Product2</td>
            <td>m2</td><td name="price">600</td>
            <td><input name="quantity" type="text"  maxlength="3" size="2" value="" autocomplete="off"/><input name="oldQ" type="hidden" value="0"/></td>
            <td><input name="checkItem" type="checkbox" autocomplete="off"/></td>
        </tr>
        
 
    </table>
    <span class="catPrice" id="categoryPrice">0</span>
     <table id="category2Table">
        <tr id="Tr1">
            <td>Product1</td>
            <td>m2</td><td name="price">500</td>
            <td><input name="quantity" type="text" maxlength="3" size="2" value="" autocomplete="off"/><input name="oldQ" type="hidden" value="0"/></td>
            <td><input name="checkItem" autocomplete="off" type="checkbox"/></td>
        </tr>
        <tr id="Tr2">
            <td>Product2</td>
            <td>m2</td><td name="price">600</td>
            <td><input name="quantity" type="text"  maxlength="3" size="2" value="" autocomplete="off"/><input name="oldQ" type="hidden" value="0"/></td>
            <td><input name="checkItem" type="checkbox" autocomplete="off"/></td>
        </tr>
        
 
    </table>
    <span class="catPrice" id="category2Price">0</span>
    
    <p><span id="totalPrice">0</span></p>
</html>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
10.01.2015, 06:30
а что у вас есть и в каком виде?
я про ассортимент, про таблицу размеров, про фотографии, про прайс
0
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 1
31.03.2015, 13:42
Цитата Сообщение от demyan_ Посмотреть сообщение
калькулятор для листа продуктов по категориям. подсчитывается сумма в категории и общий прайс
Доброго времени суток! А возможно ли сделать, что бы в этом калькуляторе автоматически считалась скидка от общего количества товаров из любой позиции пропорционально. Например. Всего во всех строках выбрано от 5 до 20 товаров - скидка 5%, От 20 до сорока штук любого товара - скидка 10%. И т.д. При этом, в самом низу, что бы указывалась цена суммарно по всем позициям, как в оригинале, потом размер скидки (сумма) и конечная сумма за вычетом скидки. ??? Буду рад любой помощи. Сам имею только общее представление о программировании. Ориентируюсь в коде только по русским словам))))))) Но так получилось, что нужно сделать срочно сайт с таким вот счетчиком. Еще раз спасибо Всем за ответы!
0
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 10
16.04.2015, 10:29
Цитата Сообщение от demyan_ Посмотреть сообщение
калькулятор для листа продуктов по категориям. подсчитывается сумма в категории и общий прайс

Доброго времени суток! А возможно ли сделать, что бы в этом калькуляторе автоматически считалась скидка от общего количества товаров из любой позиции пропорционально. Например. Всего во всех строках выбрано от 5 до 20 товаров - скидка 5%, От 20 до сорока штук любого товара - скидка 10%. И т.д. При этом, в самом низу, что бы указывалась цена суммарно по всем позициям, как в оригинале, потом размер скидки (сумма) и конечная сумма за вычетом скидки. ??? Буду рад любой помощи. Сам имею только общее представление о программировании. Ориентируюсь в коде только по русским словам))))))) Но так получилось, что нужно сделать срочно сайт с таким вот счетчиком. Еще раз спасибо Всем за ответы!

Скажите, а как сделать если надо на одной странице к примеру разместить 2 или 3 такие таблицы? С просчётом под каждую - своя.

Добавлено через 6 минут
И как сделать что б отмеченые пункты можно было отправить письмом на почту в виде списка, например кнопочкой отправить.

Добавлено через 10 часов 18 минут
Кто-то ответит? Ответь пожалуйста ))
0
0 / 0 / 0
Регистрация: 09.04.2016
Сообщений: 9
09.04.2016, 08:37
Здравствуйте, насчет вашего кина и аптеки, можно пару вопросов?
Пытался вникнуть, но не совсем понял:

Есть практически 2 одинаковых кода -
1.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<form onsubmit="return false;"
 
oninput=" 
document.getElementById('rezultat').innerHTML 
= 
parseFloat(document.getElementById('a').value)
*
parseFloat(document.getElementById('b').value)
"
>
длина <input id="a" type="number"> ширина <input id="b" type="number">  
площадь прямоугольника <output id="rezultat"></output>
</form>
и
2.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
function changeText0(){
 var rezultat = 1;
 rezultat *= parseFloat(document.getElementById('a').value);
 rezultat *= parseFloat(document.getElementById('b').value); 
 document.getElementById('rezultat').innerHTML = rezultat;
}
</script>
 
<form onsubmit="return false;" oninput="changeText0()">
длина <input id="a" type="number"> ширина <input id="b" type="number">  
площадь прямоугольника <output id="rezultat"></output>
</form>
Вопросы:
1. В чем разница между кодами?(я новичок, только осваиваю html) ведь визуально они выглядят одинаково. Какой то код лучше или хуже?
2. Почему применение сразу обоих кодов не работает? То есть я вставляю сперва первый, и следом второй код, при этом первый работает а второй нет? (подозреваю как раз одновременное отправление в кино и аптеку)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2016, 08:37
Помогаю со студенческими работами здесь

Скрипт для запуска калькулятора и расчёта выражения
Добрый день, помогите написать скрипт на JScript'е в который должен: запустить стандартный калькулятор и вычислить в нем значение...

Составьте алгоритм для расчета количества выпускаемой продукции за месяц
Цех механического оборудования за одну смену производит: шестеренок a (шт), колен валов в (шт), болтов с (шт), шпилек d (шт). Составьте...

Запрос для расчета стоимости
Подскажите, пожалуйста, возможно ли с помощью запроса посчитать стоимость блюда, исходя из стоимости поставки, и рассчитать стоимость...

Программа для расчета стоимости покупок
Разработайте приложение, которое позволяет рассчитать общую стоимость товаров, купленных в супермаркете. Пользователь должен вводить...

Калькулятор для расчета стоимости услуг
Доброго времени суток! Мы сейчас занимаемся усовершенствованием своего проекта и хотим реализовать фичи, которых нет практически ни у кого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru