Адаптивный калькулятор для web сайта
Доброго времени суток, выкладываю рабочий скрипт для расчета линолеума:
<h3>Расчет стоимости линолеума</h3> <select id="cvet"> <option value="serii">Серый</option> <option value="geltii">Желтый</option> <option value="goluboi">Голубой</option> </select> <input type="text" id="shirina" value="" placeholder="укажите ширину помещения"> <input type="text" id="dlina" value="" placeholder="укажите длину помещения"> <button onclick="raschitat();">Рассчитать стоимость</button> <div id="ploschad"></div> <div id="stoimost"></div> <script type="text/jаvascript"> function raschitat() { cvet = document.getElementById('cvet').value; switch (cvet) { case "serii": cena = 440; break case "goluboi": cena = 480; break case "geltii": cena = 380; break default: cena = 440; break } shirina = document.getElementById('shirina').value; dlina = document.getElementById('dlina').value; if(shirina == ""){ alert("Вы не указали ширину"); } else if(dlina == ""){ alert("Вы не указали длину"); } else { ploschad = parseFloat (shirina)* parseFloat (dlina); document.getElementById('ploschad').innerHTML = "Площадь равна: "+ ploschad +" кв. м."; stoimost = ploschad*cena; document.getElementById('stoimost').innerHTML = "Стоимость равна: "+ stoimost +" р."; } } </script> Решил расширить возможности и внести несколько изменений для расчета по строительству из газоблоков: Добавил третью величину "Высоту" для вычисления площади м3 <input type="text" id="shirina" value="" placeholder="укажите ширину "> <input type="text" id="dlina" value="" placeholder="укажите длину "> <input type="text" id="height" value="" placeholder="укажите высоту "> Ну и соответственно внес проверку в js и остается недоделанная формула. Но формула с зигзагом мне не подвластна, сейчас расскажу. shirina = document.getElementById('shirina').value; dlina = document.getElementById('dlina').value; height = document.getElementById('height').value; if(shirina == ""){ alert("Вы не указали ширину"); } else if(dlina == ""){ alert("Вы не указали длину"); } else if(height == ""){ alert("Вы не указали высоту"); } else { ploschad = parseFloat (shirina)* parseFloat (dlina)* parseFloat (height); document.getElementById('ploschad').innerHTML = "Площадь равна: "+ ploschad +" куб. м."; stoimost = ploschad*cena; document.getElementById('stoimost').innerHTML = "Стоимость равна: "+ stoimost +" р."; } } На web ресурсе человек водит ширину, длину и высоту, по скрипту должен получить две графы "Площадь равна" "Стоимость равна". Для правильного расчета человек смотрит на таб. т.к. калькулятор считает весь объем, то нам нужна формула она ниже Код:
(Длина + Ширина) * Высоту * 2 / Кол. Квад. метров стены из одного куба блоков = https://disk.yandex.ru/i/dgrxuMM7zo-1MA Дай бог здоровья, кто напряжется понять, что тут накалякал :lol: square = (parseFloat(width) + parseFloat(length)) * parseFloat(height) * 2 / countпытался самостоятельно изобразить формулу, но у меня по какой то причине не работает. Мне нужна формула вышенаписанная на js скрипте внедренная под код. Поможет кто?) |
bigfooter,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <h3>Расчет стоимости линолеума</h3> <select id="cvet"> <option value="serii">Серый</option> <option value="geltii">Желтый</option> <option value="goluboi">Голубой</option> </select> <select id="count"> <option value="13.3">75</option> <option value="10">100</option> </select> <input type="text" id="shirina" value="5" placeholder="укажите ширину помещения"> <input type="text" id="dlina" value="5" placeholder="укажите длину помещения"> <input type="text" id="height" value="5" placeholder="укажите высоту помещения"> <button onclick="raschitat();">Рассчитать стоимость</button> <div id="ploschad"></div> <div id="stoimost"></div> <div id="square"></div> <script> function raschitat() { let _cvet = document.getElementById('cvet').value, cena; switch (_cvet) { case "serii": cena = 440; break case "goluboi": cena = 480; break case "geltii": cena = 380; break default: cena = 440; break } let _shirina = +document.getElementById('shirina').value; let _dlina = +document.getElementById('dlina').value; let _height = +document.getElementById('height').value; let _count = +document.getElementById('count').value; if (_shirina == "") { alert("Вы не указали ширину"); } else if (dlina == "") { alert("Вы не указали длину"); } else if (height == "") { alert("Вы не указали высоту"); } else { let volume = _shirina * _dlina * _height; document.getElementById('ploschad').innerHTML = "Кубатура равна: " + volume + " кв. м."; let _stoimost = volume * cena; document.getElementById('stoimost').innerHTML = "Стоимость равна: " + _stoimost + " р."; let _square = (_dlina + _shirina) * _height * 2 / _count; document.getElementById('square').innerHTML = "не знаю что равно: " + _square.toFixed(2) ; } } </script> </body> </html> |
Не то, профессор! Видимо на столько слабо могу выражать свои мысли, что понимают не правильно меня.
Мне нужно вот эту формулу изобразить на Js (Длина + Ширина) * Высоту * 2 / Кол. Квад. метров стены из одного куба блоков = И как мы видим, он продолжает вычислять общею кубатуру а не количество квадратных метров из 1 куба |
bigfooter,
что вы написали, то я и сделал. (Длина + Ширина) * Высоту * 2 / Кол. Квад. метров стены из одного куба блоков = let _square = (_dlina + _shirina) * _height * 2 / _count;что не так? |
Я чего то не понимаю?
30 let _cvet = document.getElementById('cvet').value, cena; 31 switch (cvet) { 45 let _shirina = +document.getElementById('shirina').value; 49 if (shirina == "") { и т.д. Зачем вообще названия локальных переменных начинать с "_"? |
Цитата:
|
Цитата:
|
Зашел в exl создал таблицу расчетов, он должен выводить именно эти значения из них я и взял формулу которая собственно написана на верху таблицы https://disk.yandex.ru/i/oSr2ygn8oehDhQ
|
Цитата:
|
bigfooter,
не могу помочь, не понимаю. |
Цитата:
Помогите коллеге)) |
A если попробовать дать запрос «кубатуру перевести в квадратуру»:
Цитата:
|
Цитата:
|
Цитата:
<table border=1> <tr><th>Данные блока, M</th><th></th><td>Количество блоков в одном кубе</td></tr> <tr><td>Длина</td><td><input type=number id=Dlina value=0.6 step=0.01 min=0.1 max=1.0></td><td id=Shtuki></td></tr> <tr><td>Высота</td><td><input type=number id=Vysota value=0.2 step=0.01 min=0.1 max=1.0></td><td></td></tr> <tr><td>Толщина</td><td><input type=number id=Tolschina value=0.075 step=0.001 min=0.01 max=1.0></td><td>M<sup>2</sup> стены из одного куба</td></tr> <tr><td>Стоимость M<sup>3</sup>, руб.</td><td id=Stoimost></td><td id=Kvadratov></td></tr> </table> <br> <table border=1> <tr><th>Данные дома, M</th><th></th></tr> <tr><td>Длина</td><td><input type=number id=DlinaDoma value=10 min=1 max=100.0></td></tr> <tr><td>Высота</td><td><input type=number id=VysotaDoma value=3 min=1 max=10.0></td></tr> <tr><td>Ширина</td><td><input type=number id=ShirinaDoma value=8 min=1 max=100.0></td></tr> <tr><td colspan=2></td></tr> <tr><td>Количество блоков, M<sup>3</sup></td><td id=Blokov></td></tr> <tr><td>Стоимость, руб.</td><td id=Rubley></td></tr> </table> <script> var Dannye = { Dlina: null, Vysota: null, Tolschina: null, Shtuki: null, Stoimost: null, Kvadratov: null, DlinaDoma: null, VysotaDoma: null, ShirinaDoma: null, Blokov: null, Rubley: null } for(var id in Dannye) { var el = document.getElementById(id); if(el) { if(isFinite(el.value)) el.addEventListener("change", Kalkulyator); Dannye[id] = el; el.title = "Dannye." + id; } } function Kalkulyator() { Dannye.Shtuki.textContent = 1 / +Dannye.Dlina.value / +Dannye.Vysota.value / +Dannye.Tolschina.value; Dannye.Kvadratov.textContent = 1 / +Dannye.Tolschina.value; Dannye.Stoimost.textContent = 3800; Dannye.Blokov.textContent = 2 * (+Dannye.DlinaDoma.value + +Dannye.ShirinaDoma.value) * +Dannye.VysotaDoma.value / +Dannye.Kvadratov.textContent; Dannye.Rubley.textContent = +Dannye.Stoimost.textContent * +Dannye.Blokov.textContent; } Kalkulyator(); </script> |
Цитата:
31 switch (cvet) { и 49 if (shirina == "") { Почему не .value? |
voraa,
спасибо, исправил, надеюсь))) |
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <h3>Расчет стоимости линолеума</h3> <select id="cvet"> <option value="serii">Серый</option> <option value="geltii">Желтый</option> <option value="goluboi">Голубой</option> </select> <select id="count"> <option value="13.3">75</option> <option value="10">100</option> </select> <input type="text" id="shirina" value="5" placeholder="укажите ширину помещения"> <input type="text" id="dlina" value="5" placeholder="укажите длину помещения"> <input type="text" id="height" value="5" placeholder="укажите высоту помещения"> <button onclick="raschitat();">Рассчитать стоимость</button> <div id="ploschad"></div> <div id="stoimost"></div> <div id="square"></div> <script> function raschitat() { let cvet = document.getElementById('cvet').value; switch (cvet) { case "serii": cena = 440; break case "goluboi": cena = 480; break case "geltii": cena = 380; break default: cena = 440; break } let _shirina = +document.getElementById('shirina').value; let _dlina = +document.getElementById('dlina').value; let _height = +document.getElementById('height').value; let _count = +document.getElementById('count').value; if (shirina == "") { alert("Вы не указали ширину"); } else if (dlina == "") { alert("Вы не указали длину"); } else if (height == "") { alert("Вы не указали высоту"); } else { let volume = _shirina * _dlina * _height; document.getElementById('ploschad').innerHTML = "Кубатура равна: " + volume + " кв. м."; let _stoimost = volume * cena; document.getElementById('stoimost').innerHTML = "Стоимость равна: " + _stoimost + " р."; let _square = (_dlina + _shirina) * _height * 2 / _count; document.getElementById('square').innerHTML = "не знаю что равно: " + _square.toFixed(2) ; } } </script> </body> </html> Были ошибки и порядок изменен расчета, теперь все работает. Кому нужно, пользуйтесь на здоровье! |
Часовой пояс GMT +3, время: 16:36. |