webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...

Простой расчет на jQuery?

Собственно, простой вопрос https://jsfiddle.net/webirus/uovaucbe/
Примерно такой калькулятор должен быть. Простое умножение инпутов.

Но не могу составить условие для правильного умножения.
Значения берутся из базы данных.
d18c218ba1dd4436842a9a4fa17f7eed.png

А умножение происходит согласно таблице.
c4906a9b01244ff0ba271db252a5c020.png

Собственно, вопрос 1.
Как обратиться в файле скриптов к базе данных и надо ли это? Или просто написать скрипт в php файле?
Вопрос 2.
Как правильно составить условие для умножения, если введено одно, умножаем так, а если введено другое - умножаем вот так. В общем, согласно таблице.
Вопрос 3.
Умножение по кнопке "Рассчитать" получается сделать, но никак не могу сделать "на лету" - on, change, что-то не сработали. Или я не правильно подобрал функции.
  • Вопрос задан
  • 363 просмотра
Решения вопроса 1
larisamoroz
@larisamoroz
Курю маны, втыкаю в код, ваяю, починяю.
Вам нужно чем-то (php-скриптом или серверным javascript-скриптом) выбрать данные из таблицы в JSON, типа:

[
	{
  	area:'70-119', 
    prices:{40:663,50:693,60:723}
  },
  {
  	area:'120-199',
    prices:{40:547,50:575,60:603}
  },
  {
  	area:'1000-1999',
    prices:{40:345,50:367,60:389}
  }
 ]

Затем, из вашего клиентского js запросить этот JSON ajax-запросом.
Или, как вариант, если данные предполагается менять нечасто, можно просто прописать этот массив цен вручную в код вашего клиентского JS.
Затем на клиентском JS при изменении данных в input-полях уже считать, выбирая соответствующие данные из этого массива как-то так: https://jsfiddle.net/lmoroz/yyjjd6zL/5/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alvvi
@alvvi
export default apathy;
1. Ну если у вас значения базе данных, обратится в любом случае придется, однако естественно не в js скрипте, а в php.
2. Чем обычный if не устраивает?
3. Что такое "на лету"? Если вы хотите реактивности, то вам нужен AJAX. На change ивент инпута делаете нужный запрос и обрабатываете ответ соответствующим образом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы