Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.09.2022, 12:29
Аватар для bigfooter
Новичок на форуме
Отправить личное сообщение для bigfooter Посмотреть профиль Найти все сообщения от bigfooter
 
Регистрация: 07.09.2022
Сообщений: 9

Адаптивный калькулятор для 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="укажите ширину  &nbsp;&nbsp;&nbsp;&nbsp;    ">
<input type="text" id="dlina" value="" placeholder="укажите длину  &nbsp;&nbsp;&nbsp;&nbsp;    ">
<input type="text" id="height" value="" placeholder="укажите высоту  &nbsp;&nbsp;&nbsp;&nbsp;   ">


Ну и соответственно внес проверку в 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 ресурсе человек водит ширину, длину и высоту, по скрипту должен получить две графы "Площадь равна" "Стоимость равна".
Для правильного расчета человек смотрит на таб. https://disk.yandex.ru/i/yaL2mV9Tgpd_6A
т.к. калькулятор считает весь объем, то нам нужна формула она ниже

Код:
(Длина + Ширина) * Высоту * 2 / Кол. Квад. метров стены из одного куба блоков =
При верном расчете, должны получить цену и площадь

https://disk.yandex.ru/i/dgrxuMM7zo-1MA

Дай бог здоровья, кто напряжется понять, что тут накалякал
square = (parseFloat(width) + parseFloat(length)) * parseFloat(height) * 2 / count
пытался самостоятельно изобразить формулу, но у меня по какой то причине не работает. Мне нужна формула вышенаписанная на js скрипте внедренная под код. Поможет кто?)

Последний раз редактировалось bigfooter, 10.09.2022 в 12:33.
Ответить с цитированием
  #2 (permalink)  
Старый 10.09.2022, 14:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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>

Последний раз редактировалось рони, 11.09.2022 в 10:18.
Ответить с цитированием
  #3 (permalink)  
Старый 10.09.2022, 15:16
Аватар для bigfooter
Новичок на форуме
Отправить личное сообщение для bigfooter Посмотреть профиль Найти все сообщения от bigfooter
 
Регистрация: 07.09.2022
Сообщений: 9

Не то, профессор! Видимо на столько слабо могу выражать свои мысли, что понимают не правильно меня.

Мне нужно вот эту формулу изобразить на Js

(Длина + Ширина) * Высоту * 2 / Кол. Квад. метров стены из одного куба блоков =


И как мы видим, он продолжает вычислять общею кубатуру а не количество квадратных метров из 1 куба

Последний раз редактировалось bigfooter, 10.09.2022 в 15:18. Причина: Добавление информации для развернутого ответа
Ответить с цитированием
  #4 (permalink)  
Старый 10.09.2022, 15:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

bigfooter,
что вы написали, то я и сделал.
(Длина + Ширина) * Высоту * 2 / Кол. Квад. метров стены из одного куба блоков =
let _square = (_dlina + _shirina) * _height * 2 / _count;
что не так?
Ответить с цитированием
  #5 (permalink)  
Старый 10.09.2022, 18:09
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,701

Я чего то не понимаю?

30 let _cvet = document.getElementById('cvet').value, cena;
31 switch (cvet) {

45 let _shirina = +document.getElementById('shirina').value;
49 if (shirina == "") {

и т.д.

Зачем вообще названия локальных переменных начинать с "_"?

Последний раз редактировалось voraa, 10.09.2022 в 18:12.
Ответить с цитированием
  #6 (permalink)  
Старый 10.09.2022, 18:36
Аватар для bigfooter
Новичок на форуме
Отправить личное сообщение для bigfooter Посмотреть профиль Найти все сообщения от bigfooter
 
Регистрация: 07.09.2022
Сообщений: 9

Сообщение от рони
let _square = (_dlina + _shirina) * _height * 2 / _count;
что не так?
Не работает представленный вами код, он не считает по формуле, он тупо умножает три значения и выдает результат.
Ответить с цитированием
  #7 (permalink)  
Старый 10.09.2022, 18:37
Аватар для bigfooter
Новичок на форуме
Отправить личное сообщение для bigfooter Посмотреть профиль Найти все сообщения от bigfooter
 
Регистрация: 07.09.2022
Сообщений: 9

Сообщение от voraa
30 let _cvet = document.getElementById('cvet').value, cena;
31 switch (cvet) {

45 let _shirina = +document.getElementById('shirina').value;
49 if (shirina == "") {

и т.д.

Зачем вообще названия локальных переменных начинать с "_"?
не силен в JS по этому и выложил код на обсуждение, не могу заставить произвести расчет строго по формуле. По этой формуле он должен выдать верную площадь стен и цену, а выдает общею кубатуру и цену за все.
Ответить с цитированием
  #8 (permalink)  
Старый 10.09.2022, 18:46
Аватар для bigfooter
Новичок на форуме
Отправить личное сообщение для bigfooter Посмотреть профиль Найти все сообщения от bigfooter
 
Регистрация: 07.09.2022
Сообщений: 9

Зашел в exl создал таблицу расчетов, он должен выводить именно эти значения из них я и взял формулу которая собственно написана на верху таблицы https://disk.yandex.ru/i/oSr2ygn8oehDhQ
Ответить с цитированием
  #9 (permalink)  
Старый 10.09.2022, 19:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от voraa
Я чего то не понимаю?
на скорую руку, не хотел иметь переменные и id одинаковыми.
Ответить с цитированием
  #10 (permalink)  
Старый 10.09.2022, 19:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

bigfooter,
не могу помочь, не понимаю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
калькулятор для сайта js+html andreydeli7 Общие вопросы Javascript 1 15.01.2017 06:36
CMS или Framework для сайта xShift Серверные языки и технологии 3 13.01.2017 18:20
Скрипт корзины для сайта EasyNetShop.ru Ваши сайты и скрипты 0 17.11.2016 14:57
REST API для сайта на Node js Ashotich Node.JS 2 26.09.2016 23:04
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00