Калькулятор расчета стоимости разработки сайта Joomla + RSForm + Java

W
На сайте с 08.05.2013
Offline
106
2074

Здравствуйте!

Была задача создать в Joomla форму RSForm с калькулятором подсчета суммы услуг по разработке сайта. Вот что получилось – пример

Соответственно можно добавлять или убирать любые поля при необходимости.

Значения: category, shablon, zapolnenie, logo, design и другие вам необходимо заменить на названия ваших полей которые вы указали в форме RSForm.

Также в дополнительных атрибутах полей надо добавить - onchange="calc()"

HTML код формы:

<div class="rsform">

<form method="post" id="userForm" enctype="multipart/form-data" action=""><div id="wrap-calculator-site">

<div id="block-325-l">
<p><span class="red">*</span> Название организации</p>
<input type="text" value="" size="20" name="form[company]" id="company" class="rsform-input-box"/>
</div>

<div id="block-325-r">
<p><span class="red">*</span> Контактное лицо</p>
<input type="text" value="" size="20" name="form[name]" id="name" class="rsform-input-box"/>
</div>

<div id="block-325-l">
<p><span class="red">*</span> Телефон для связи</p>
<input type="text" value="" size="20" name="form[phone]" id="phone" class="rsform-input-box"/>
</div>

<div id="block-325-r">
<p><span class="red">*</span> Электронная почта</p>
<input type="text" value="" size="20" name="form" id="email" class="rsform-input-box"/>
</div>

<div id="block-325-l">
<p><span class="red">*</span> Выберите категорию сайта</p>
<select name="form[category][]" id="category" onchange="calc()" class="rsform-select-box" ><option value="0">выбрать из списка...</option><option value="100">Сайт визитка - 100$</option><option value="200">Корпоративный сайт - 200$</option><option value="270">Интернет магазин (каталог) - 270$</option></select>
</div>

<div id="block-325-r">
<p>Количество уникальных шаблонов</p>
<select name="form[shablon][]" id="shablon" onchange="calc()" class="rsform-select-box" ><option value="0">1 - шаблон сайта - 0$</option><option value="50">2 - шаблон сайта - 50$</option><option value="75">3 - шаблон сайта - 75$</option><option value="100">4 - шаблон сайта - 100$</option><option value="125">5 - шаблон сайта - 125$</option></select>
</div>

<div id="block-325-l">
<p>Заполнение страниц</p>
<select name="form[zapolnenie][]" id="zapolnenie" onchange="calc()" class="rsform-select-box" ><option value="0">5 &ndash; страниц - 0$</option><option value="10">10 &ndash; страниц - 10$</option><option value="40">25 &ndash; страниц - 40$</option><option value="90">50 &ndash; страниц - 90$</option><option value="190">100 &ndash; страниц - 190$</option></select>
</div>

<div id="block-325-r">
<p>Логотип и фирменный стиль</p>
<select name="form[logo][]" id="logo" onchange="calc()" class="rsform-select-box" ><option value="0">Фирменный стиль имеется - 0$</option><option value="70">Необходимо разработать - 70$</option></select>
</div>

<div id="block-325-l">
<p><span class="red">*</span>Направление дизайна сайта</p>
<select name="form[design][]" id="design" onchange="calc()" class="rsform-select-box" ><option value="0">выбрать из списка...</option><option value="50">Классический стиль сайта - 50$</option><option value="60">Ретро-стиль дизайна - 60$</option><option value="60">Дизайн сайтов в стиле &laquo;гранж&raquo; - 60$</option><option value="100">Мультипликационный (рисованный) дизайн - 100$</option><option value="70">Журнальный дизайн сайтов - 70$</option></select>
</div>

<div id="block-325-r">
<p>Количество языков контента</p>
<select name="form[language][]" id="language" onchange="calc()" class="rsform-select-box" ><option value="0">1 - язык сайта - 0$</option><option value="20">2 - языка сайта - 20$ (за каждые 10 стр.)</option><option value="60">3 - языка сайта - 60$ (за каждые 10 стр.)</option></select>
</div>

<div id="block-325-l">
<p>Написание контента для сайта</p>
<select name="form[contentsite][]" id="contentsite" onchange="calc()" class="rsform-select-box" ><option value="0">Не требуется - 0$</option><option value="20">Продающий текст - 1000 знаков - 20$</option><option value="35">Продающий текст - 2000 знаков - 35$</option><option value="78">Продающий текст - 4000 знаков - 78$</option><option value="40">Копирайт - 4000 знаков - 40$</option><option value="75">Копирайт - 8000 знаков - 75$</option><option value="100">Копирайт - 10000 знаков - 100$</option><option value="32">Рерайт - 4000 знаков - 32$</option><option value="64">Рерайт - 8000 знаков - 64$</option><option value="80">Рерайт - 10000 знаков - 80$</option><option value="60">Seo текст - 4000 знаков - 60$</option><option value="120">Seo текст - 8000 знаков - 120$</option><option value="150">Seo текст - 10000 знаков - 150$</option></select>
</div>

<div id="block-325-r">
<p>Адаптация под мобильные устройства</p>
<select name="form[mobile][]" id="mobile" onchange="calc()" class="rsform-select-box" ><option value="0">выбрать из списка...</option><option value="70">Адаптация основного шаблона - 70$</option><option value="150">Отдельный мобильный сайт - 150$</option></select>
</div>

<div id="block-650">
<p>Укажите списком адреса сайтов или страниц, которые Вам нравятся по дизайну либо по другим параметрам.</p>
<textarea cols="50" rows="5" name="form[lovesite]" id="lovesite" class="rsform-text-box"></textarea>
</div>

<div id="block-325">
<input name="form[modules][]" type="checkbox" value="12" id="modules0" onchange="calc()" /><label for="modules0">Блог новостей или статей - 12$</label><br/><input name="form[modules][]" type="checkbox" value="30" id="modules1" onchange="calc()" /><label for="modules1">Форум - 30$</label><br/><input name="form[modules][]" type="checkbox" value="20" id="modules2" onchange="calc()" /><label for="modules2">Фотогалерея / портфолио - 20$</label><br/><input name="form[modules][]" type="checkbox" value="50" id="modules3" onchange="calc()" /><label for="modules3">Каталог продукции или услуг - 50$</label><br/>
</div>

<div id="block-325">
<input name="form[modulestoo][]" type="checkbox" value="5" id="modulestoo0" onchange="calc()" /><label for="modulestoo0">Форма отправки сообщений с сайта - 5$</label><br/><input name="form[modulestoo][]" type="checkbox" value="7" id="modulestoo1" onchange="calc()" /><label for="modulestoo1">Отзывы на сайте / гостевая / опросы - 7$</label><br/><input name="form[modulestoo][]" type="checkbox" value="15" id="modulestoo2" onchange="calc()" /><label for="modulestoo2">Блок специального предложения - 15$</label><br/><input name="form[modulestoo][]" type="checkbox" value="10" id="modulestoo3" onchange="calc()" /><label for="modulestoo3">Интерактивная карта (схема проезда) - 10$</label><br/>
</div>

<div id="block-650">
<p>Опишите Ваши пожелания в свободной форме.</p>
<textarea cols="50" rows="5" name="form[dopinfo]" id="dopinfo" class="rsform-text-box"></textarea>
</div>


<div id="block-650">
<div id="calc-summa-text">Стоимость разработки сайта: <span id="result">0</span> $.</div>
</div>

<div id="block-650">
<input type="submit" value="Отправить заявку с выбранными параметрами" name="form[send]" id="send" class="rsform-submit-button" />
</div>


</div><input type="hidden" name="form[formId]" value="51"/></form></div>

Java код:

<script type="text/javascript">

function calc() {
var category = document.getElementById("category");
var shablon = document.getElementById("shablon");
var zapolnenie = document.getElementById("zapolnenie");
var logo = document.getElementById("logo");
var design = document.getElementById("design");
var language = document.getElementById("language");
var contentsite = document.getElementById("contentsite");
var mobile = document.getElementById("mobile");


var modules0 = document.getElementById("modules0");
var modules1 = document.getElementById("modules1");
var modules2 = document.getElementById("modules2");
var modules3 = document.getElementById("modules3");
var modulestoo0 = document.getElementById("modulestoo0");
var modulestoo1 = document.getElementById("modulestoo1");
var modulestoo2 = document.getElementById("modulestoo2");
var modulestoo3 = document.getElementById("modulestoo3");

var result = document.getElementById("result");

var price = 0;
price += parseInt(category.options[category.selectedIndex].value);
price += parseInt(shablon.options[shablon.selectedIndex].value);
price += parseInt(zapolnenie.options[zapolnenie.selectedIndex].value);
price += parseInt(logo.options[logo.selectedIndex].value);
price += parseInt(design.options[design.selectedIndex].value);
price += parseInt(language.options[language.selectedIndex].value);
price += parseInt(contentsite.options[contentsite.selectedIndex].value);
price += parseInt(mobile.options[mobile.selectedIndex].value);

price += (modules0.checked == true)? parseInt(modules0.value) : 0;
price += (modules1.checked == true)? parseInt(modules1.value) : 0;
price += (modules2.checked == true)? parseInt(modules2.value) : 0;
price += (modules3.checked == true)? parseInt(modules3.value) : 0;
price += (modulestoo0.checked == true)? parseInt(modulestoo0.value) : 0;
price += (modulestoo1.checked == true)? parseInt(modulestoo1.value) : 0;
price += (modulestoo2.checked == true)? parseInt(modulestoo2.value) : 0;
price += (modulestoo3.checked == true)? parseInt(modulestoo3.value) : 0;

result.innerHTML = price;
}

</script>


<div id="calc-summa-text">Стоимость разработки сайта: <span id="result">0</span> $.</div>
CP
На сайте с 12.08.2009
Offline
101
#1

Java код в браузере, сильное заявление)))

Профессиональный frontend: JS, html,css, Single-Page App (/ru/forum/964386)
S3
На сайте с 29.03.2012
Offline
367
#2
Content-pro:
Java код в браузере, сильное заявление)))

+1 ))) Сразу возникает желание воспользоваться услугами таких "разработчиков"

))

TF-Studio
На сайте с 17.08.2010
Offline
334
#3

А вопрос-то в чем?

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
totamon
На сайте с 12.05.2007
Offline
437
#4
TF-Studio:
А вопрос-то в чем?

наверно это предложение, а не вопрос)

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
W
На сайте с 08.05.2013
Offline
106
#5

это готовое решение которое работает

CP
На сайте с 12.08.2009
Offline
101
#6
webgroupco:
это готовое решение которое работает

Решение рабочее. Вам надо над кодом поработать, всё решение уложиться в 10 строчек кода.

W
На сайте с 08.05.2013
Offline
106
#7
Content-pro:
Решение рабочее. Вам надо над кодом поработать, всё решение уложиться в 10 строчек кода.

Мою задачу это решило, заявки формируются через RSForm, а для клиента удобно видеть сразу итоговую сумму.

Конечно ели кому надо дополнительный функционал, то он может переделать под себя.

B
На сайте с 23.05.2001
Offline
195
#8
webgroupco:
Мою задачу это решило, заявки формируются через RSForm, а для клиента удобно видеть сразу итоговую сумму.

Конечно ели кому надо дополнительный функционал, то он может переделать под себя.

Заявки "формируются", то есть, стали приходить реальные заявки (на том же траффике) или "могут формироваться"?

---------- Добавлено 08.05.2016 в 10:13 ----------

TF-Studio:
А вопрос-то в чем?

Вопрос "а теперь объясните, нафига мы все это сделали" :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий