Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

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

#1 webgroupco

webgroupco
  • Пользователь
  • 41 сообщений
  • Репутация: 3
0

Отправлено 07 Май 2016 - 03:53

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

 

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

 

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

 

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

 

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

 

Скрипт просчитывает сумму выбранных компонентов и формирует заявку через RSForm

 

 

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[email]" 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>

 

 

  • 0


Оформление форума – IPBSkins.ru