15.05.2015, 19:03
|
Новичок на форуме
|
|
Регистрация: 15.05.2015
Сообщений: 3
|
|
Нужна помощь, сломался калькулятор
Создаю собственный сайт на Parallels и хочу сделать калькулятор расчета стоимости http://vm-remont.ru/request-an-estimate/ но что-то где-то пошло не так и теперь он не считает, нужна помощь в исправлении ошибки, и сделать чтоб эта форма мне на почту отправлялась для связи с заказчиком. Заранее благодарю!
|
|
16.05.2015, 07:23
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Выкидывать надо такой калькулятор
|
|
16.05.2015, 08:22
|
Новичок на форуме
|
|
Регистрация: 15.05.2015
Сообщений: 3
|
|
Если его выкинуть, то что вставить взамен?
|
|
16.05.2015, 08:45
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Какой вставить я не знаю, то есть есть ли такой готовый, а вот писать надо не так. Во-первых ваш калькулятор работает постфактум, а не в реальном режиме, так как браузер показывает наличие ошибок в коде только после потере фокуса элементом.
Во-вторых, определять в функции "поголовно" каждый элемент ввода как:
var Pol2 = document.getElementById("Pol2");
var Pol3 = document.getElementById("Pol3");
var Pol4 = document.getElementById("Pol4");
var Pol5 = document.getElementById("Pol5");
.....
и
var price_Pol2 = 0;
var price_Pol3 = 0;
var price_Pol4 = 0;
var price_Pol5 = 0;
совсем не нужно, как и вести расчеты таким способом:
....
price_Potolok11 += parseInt(Potolok11.value)*150;
price_Potolok12 += parseInt(Potolok12.value)*500;
price_Potolok13 += parseInt(Potolok13.value)*450;
price_Potolok=price_Potolok1 + price_Potolok2 + price_Potolok3 + price_Potolok4 ....
это излишество. Нужно либо обходить коллекцию полей просчитывая сумму, либо поступать иным способом. Обход коллекции циклом можно, но когда их много, то жаба давит зря расходовать ресурсы системы. )
Можно поступать иначе, обрабатывать два события - onkeydown и onkeyup элемента. В обработчике события onkeydown получать значение value элемента, умножая его на цену за услугу им определяемую, получая сумму за эту услугу. Эту сумму вычитать из общей суммы.
В обработчике onkeyup тоже самое, но полученную сумму за услугу складывать с общей суммой.
В этих обработчиках нужно исключить обработку клавиш стрелка влево/вправо и табуляции.
Это будет махонькая функция не требующая объявлений price_Potolok11 и прочих.
Насчет оправки почты, тут не понятно зачем это нужно, так как по уму, калькулятор должен считать только для клиента, то есть как уведомление. А на сервер должен отправляться массив данных, как id каждой услуги и выбранное значение для нее. Сервер должен хранить в базе под id услуг их описание и цену за указанную единицу.
В базу заказов должны записывать данные заказчика, и параметры его заказа, включая и его дату.
На основе полученных данных от клиента, сервер получает из базы цену этих услуг, их описание, и по указанному количеству производит расчет, который и отправляет почтой по указанному пользователем электронному адресу. То есть не только контакты заказчика, но и что он заказал. Или же только контакты заказчика и чего-то там о заказе, но еще и ID заказа, который содержит параметры.
Как в этом плане у вас, я не смотрел по коду, но по уму вообще-то делают так.
|
|
16.05.2015, 10:34
|
Новичок на форуме
|
|
Регистрация: 15.05.2015
Сообщений: 3
|
|
Это все замечательно и познавательно, спасибо огромное laimas, но кто и за сколько может это все допилить?
|
|
16.05.2015, 11:38
|
Новичок на форуме
|
|
Регистрация: 06.03.2011
Сообщений: 2
|
|
Вы или администратор сайта удалили элементы со страницы
поля ввода цены
Pol3, Pol18, Sten4, Santeh6, Santeh8, Santeh12
и соответственно по аналогии
price_Pol3, price_Pol18, ...
result_Pol3, price_Pol18, ... result_PGRG
Верните на место или удалите из javascript'a все упоминания.
Последний раз редактировалось NC22, 16.05.2015 в 11:47.
|
|
16.05.2015, 13:39
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от smnik
|
Это все замечательно и познавательно, спасибо огромное laimas, но кто и за сколько может это все допилить?
|
Нет, "допиливать" такое я бы не стал, а вот выбросить с удовольствием. )
Можно написать, но я сейчас занят, а значит могу писать только когда есть время "отдохнуть", то есть в общем не сложную эту работу могу выполнять дня три.
Ну тут вот охотники есть, "запилят" быстро, лишь бы баксы хрустели.
|
|
|
|