Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 1017 Ответов
  • 265121 Просмотров
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Вам не нужна функция. Код будет примерно такой:
Код
<select size="1" id="vekauto" class=" validate['required']" title="" name="vekauto">
<option value="0">выбирите возраст автомобиля</option>
<option value="2,5">3-5 лет</option>
<option value="4,5">старше 5 лет</option> 
</select>
где 2,5 - ставка для возраста 3-5 лет
4,5 - старше 5 лет.
По анологии сделайте ставку, как Вам нужно
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Вам не нужна функция. Код будет примерно такой:
Код
<select size="1" id="vekauto" class=" validate['required']" title="" name="vekauto">
<option value="0">выбирите возраст автомобиля</option>
<option value="2,5">3-5 лет</option>
<option value="4,5">старше 5 лет</option> 
</select>
где 2,5 - ставка для возраста 3-5 лет
4,5 - старше 5 лет.
По анологии сделайте ставку, как Вам нужно

Нет, должно быть немного иначе, смотрите:

0-1000 см3 --- 1.5 евро
1001--1500 см3 ---1.7 евро
1501- 1800 см   ---2.5 евро
1801-2300 см  2.7 евро
2301-3000см  --3 евро
3001 --- до бесконечности ---3.6 евро
при выборе машины старше от 5 до 7 лет
0---1000см --3 евро
1001 --1500 см --3.2 евро
1501 --1800 см --3.5 евро
1801 --2300 см 3.5 евро
2301 - 3000 см  ---4.8 евро
3001 -- до бесконечности ---5.7 евро
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Добрый день.
На основе примера с сайта сделал калькулятор расчета стоимости ремонта. Получился вот такой код
Код
<script language="javascript">
function minus(obj)
{
val = parseInt(document.forms['calcForm'].elements[obj].value);
if (val>0){
val--;
document.forms['calcForm'].elements[obj].value=val;
document.forms['calcForm'].elements[obj].fireEvent('change');
}
}
function plus(obj)
{
val = parseInt(document.forms['calcForm'].elements[obj].value);
val++;
document.forms['calcForm'].elements[obj].value=val;
document.forms['calcForm'].elements[obj].fireEvent('change');
}

</script>
<form name="calcForm">
<table width="" border="0" style="margin: auto">
<tr>
<td width="75%" style="text-align: left; padding-bottom: 12px">Площадь помещения (М&sup2)</td>
<td width="25%" style="text-align: center; vertical-align: top">
<table border="0" cellpadding="0" cellspacing="0" align="center">
<tbody><tr><td rowspan="2" width="12">
<input name="ws" size="2" class="meter" value="0"
style="text-align: center;" type="text" align="middle">
</td>
<td width="25">
<input value="+" ondblclick="plus('ws')" onclick="plus('ws')"
style="meterb;" type="button" class="button1">
</td></tr>
<tr><td>
<input value="-" onclick="minus('ws')" ondblclick="minus('ws')"
style="meterb" type="button" class="button1">
</td></tr>
</tbody></table>
</td>
</tr></table>

<script>
function izmen(){
chto=document.getElementById("master1").value;
if(chto==1){
document.calcForm.master2.options.length=0;
document.calcForm.master2.options[0]=new Option("Тип ремонта", "0", true, false);
document.calcForm.master2.options[1]=new Option("Косметический", "4000", false, false);
document.calcForm.master2.options[2]=new Option("Капитальный", "5500", false, false);
document.calcForm.master2.options[3]=new Option("Евро", "7000", false, false);
}
if(chto==2){
document.calcForm.master2.options.length=0;
document.calcForm.master2.options[0]=new Option("Тип ремонта", "0", true, false);
document.calcForm.master2.options[1]=new Option("Косметический", "4000", false, false);
document.calcForm.master2.options[2]=new Option("Капитальный", "5500", false, false);
document.calcForm.master2.options[3]=new Option("Евро", "7000", false, false);
}
if(chto==3){
document.calcForm.master2.options.length=0;
document.calcForm.master2.options[0]=new Option("Тип ремонта", "0", true, false);
document.calcForm.master2.options[1]=new Option("Косметический", "4000", false, false);
document.calcForm.master2.options[2]=new Option("Капитальный", "5500", false, false);
document.calcForm.master2.options[3]=new Option("Евро", "7000", false, false);
}
}
</script>


<select type="master" name="master1" id="master1" size="1" onchange="izmen()">
<option value="0">Тип помещения</option>
<option value="1">Квартира</option>
<option value="2">Офис</option>
<option value="3">Коттедж</option>
</select> <br>
<select type="master" name="master2" size="1">
<option value="0">---</option>
</select>
</form>


Итого:<br>
Стоимость работ: <strong>{result1} руб.</strong><br>

формула такая:
result1={ws}*{master2}

то есть в расчете используется метраж (переменная {ws}) и тип ремонта (переменная {master2}),

можно ли добавить стоимость материалов, которая будет зависеть от того какой тип ремонта выбран
result2=метраж*стоимость материалов за метр (в зависимости от типа ремонта)

как я это вижу, здесь нужно либо добавить второе значение для опций переменных {master2}, но как его вызвать в формуле
либо добавить условие, если у переменной {master2} выбрана опция, например 1, то подставляется одна цена, если опция 2 то подставляется другая цена

подскажите пожалуйста как это сделать


и еще был вопрос, о том как выводить суммы с разделением на разряды вместо 1000000 выводить 1 000 000
« Последнее редактирование: 15.04.2013, 16:16:13 от turbolamer »
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Нет, должно быть немного иначе, смотрите:

0-1000 см3 --- 1.5 евро
1001--1500 см3 ---1.7 евро
1501- 1800 см   ---2.5 евро
1801-2300 см  2.7 евро
2301-3000см  --3 евро
3001 --- до бесконечности ---3.6 евро
при выборе машины старше от 5 до 7 лет
0---1000см --3 евро
1001 --1500 см --3.2 евро
1501 --1800 см --3.5 евро
1801 --2300 см 3.5 евро
2301 - 3000 см  ---4.8 евро
3001 -- до бесконечности ---5.7 евро
Тогда нужна функция например вот так:
Код
<script>
function f(){
obem=document.getElementById("ob").value;
if(obem<=1000){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "1.5", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3", false, false);
}
if(obem<=1500){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "1.7", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3.2", false, false);
}
if(obem<=1800){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "2.5", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3.5", false, false);
}
if(obem<=2300){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "2.7", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3.5", false, false);
}
if(obem<=3000){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "3", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "4.8", false, false);
}
else{
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "3.6", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "5.7", false, false);
}
}
</script>
Теперь функцию добавляем в инпут:
<input type="text" name="ob" id="ob"  onKeyUp="f()">

А селект выбора возраста машины вставьте в таком виде:
Код
<select type="vekauto" name="vekauto" size="1"> 
<option value="0">Возраст машины</option>
</select>
Как-то так...
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Тогда нужна функция например вот так:
Код
<script>
function f(){
obem=document.getElementById("ob").value;
if(obem<=1000){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "1.5", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3", false, false);
}
if(obem<=1500){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "1.7", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3.2", false, false);
}
if(obem<=1800){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "2.5", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3.5", false, false);
}
if(obem<=2300){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "2.7", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "3.5", false, false);
}
if(obem<=3000){
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "3", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "4.8", false, false);
}
else{
document.calcForm.vekauto.options.length=0;
document.calcForm.vekauto.options[0]=new Option("Возраст машины", "0", true, false);
document.calcForm.vekauto.options[1]=new Option("3-5 лет", "3.6", false, false);
document.calcForm.vekauto.options[2]=new Option("старше 5 лет", "5.7", false, false);
}
}
</script>
Теперь функцию добавляем в инпут:
<input type="text" name="ob" id="ob"  onKeyUp="f()">

А селект выбора возраста машины вставьте в таком виде:
Код
<select type="vekauto" name="vekauto" size="1"> 
<option value="0">Возраст машины</option>
</select>
Как-то так...

Огромное вам спасибо за помощь. Обязательно плюс в карму. Ещё хотел что спросить. В форме есть переключатель Возврат НДС и Нет возврата. У меня почему-то сам переключатель не работает, то есть не переключает с одного на другое значение....Дело в том, что если пользователь выбирает Возврат НДС, то к сумме необходимо добавить 700. Как это можно сделать?
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Вы неправильно код написали. Нужно вот так:
Код
<input type="radio" name="nds" value="700">&nbsp;&nbsp;Возврат НДС (цена брутто)<br> 
<input type="radio" name="nds" value="0">&nbsp;&nbsp;Нет возврата (цена нетто)<br>
И в формуле расчета прибавить +{nds}
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Вы неправильно код написали. Нужно вот так:
Код
<input type="radio" name="nds" value="700">&nbsp;&nbsp;Возврат НДС (цена брутто)<br> 
<input type="radio" name="nds" value="0">&nbsp;&nbsp;Нет возврата (цена нетто)<br>
И в формуле расчета прибавить +{nds}

Да, спасибо, понял, в чём у меня была ошибка. Плюс вам добавил, спасибо за помощь
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
Люди, так как мультиязычность прикрутить?
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
делай для каждого языка отдельную форму
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
а по моим вопросам сможете подсказать?

http://joomlaforum.ru/index.php/topic,145164.msg1311730.html#msg1311730
*

olf

  • Захожу иногда
  • 360
  • 5 / 1
делай для каждого языка отдельную форму
да, придется видимо так.
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
а по моим вопросам сможете подсказать?

http://joomlaforum.ru/index.php/topic,145164.msg1311730.html#msg1311730
Сформулируйте понятнее свой вопрос.
*

webkuznica

  • Новичок
  • 2
  • 0 / 0
В файле components/com_formcalc/views/formcalc/tmpl/default.php удалите следующие строки:
Код
<div style="margin-top: 10px; font-size: 11px" align="center">
<? echo JText::_('AUTOR');?>
</div>
Спасибо тебе огромное!
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Хотел ещё такой вопрос задать. У меня такая формула:
Код
totalprice={price}+({ob}*{vekauto})+4600+{nds}
Как сделать так, чтобы до того, как пользователь начнёт вводить данные, на месте итогового значения отображалась не цифра 4600, а 0? Как это можно сделать?
Я попытался добавить скрытое поле с таким значением, но эта цифра всё равно отображается...
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
в примере так все просто написанно, а вот я не могу понять, если мы хотм выводить в письме понятное нам значение то value"zzz" мы не можем ставить число, как в таком случае назанчить число переменным которые должны складываться. ПРимер;
Код
<table style="width: 1200px; height: 42px;" cellspacing="3" border="0">
<tbody>
<tr>
<td style="width: 600px; padding: 0px 10px 0px 0px; vertical-align: top">
<label class="checkbox">
<input type="checkbox" name="bisenes" id="inlineCheckbox2" value="bisenes"> От бизнес плана до презентации<div style="line-height:14px"><span style="font-size: 8pt; color: #333333;">Основы предпринимательской деятельности, учреждение фирмы, элементарное право, начальная бухгалтерия, Micrasoft Office, презентации в PowerPoint, бизнес план </span><span style="font-size:8pt; color: #128aaf;"> | всего:50 ак.ч.</span><span style="font-size:8pt; color: #e8241a;"> | Koolitusluba Nr.6892HTM)</span></div></label><br>
формула
result1={bisenes}*100+{nlp}*100
result2={bisenes}*50+{nlp}*50
Не считает естественно. А как присвоить переменным число? Я в коде не знаток sorry.
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
В value надо прописывать числовое значение
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
Спасибо! OK. А как мне вывести тогда переменные на мыло? Там же будет все 1111 222 и так далее. Я не пойму тогда что люди у меня заказали. Помогите пожалуйста. Наверняка все очень просто.
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
В шаблоне сообщения сделайте такой вывод:

Результат 1: {result1}
Результат 2: {result2}
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
Спасибо за ответ.
Цитировать
Результат 1: {result1}
Результат 2: {result2}

Это мне понятно. У меня же идет так называемый набор нужных опций. Я решил сделать это через эти кнопки. То есть клиент просто выбирает их из списка, при этом они должны иметь один и тот же value «1»  для того что бы на них шел расчет. Формула при этом
result1={bis}*360+{fors}*360 и так далее с выводом в форму Всего: {result1} EUR
result2={bis}*50+{fors}*50 и так далее с выводом в форму Всего: {result2} часов

и все это красиво получается. Но в форме заказа то, нужно, что бы видно было какие опции отметили. Если я вывожу переменные в вывод письма Мы желаем: {fors} то результатом мне там сплошные единицы приходят, так как они и стоят в value. Вроде так было. Сейчас еще перепроверю.
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
Да так и есть. Просто 11111 и разберайся как знаешь что это было. Ну так, есть какие то варианты что с этим делать. Неужели я первый кому это нужно?
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
А ссылка на калькулятор есть? Просто чтобы хотя бы наглядно видеть что надо вывести в письме
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
да ссылку сейчас отправлю
« Последнее редактирование: 16.04.2013, 01:23:33 от danavir »
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
В value вам надо прописывать значение стоимости, тогда на почту будет приходить не 11111, а общая сумма. Ещё мне кажется, что у вас формула неверная.
Допустим, у вас 5 курсов по цене 100 евро. Тогда в value вы прописываете значение 100, а формулу пишете такую: rez={kurs1}+{kurs2}+{kurs3}+{kurs4}+{kurs5}
Единственное, у вас тут формула ещё каким-то образом зависит от времени, я не совсем понимаю как оно влияет на стоимость
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
Я понял. Вы предлагаете играя ценой сделать привязку к курсам. 250 будет курс 1 и так далее, при этом на часы, мне нужно всегда ставить коэффициент 50 тобиш {nlp}-200+{cms}-190 вариант конечно. Если нет лучшего, спасибо за этот.
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Я понял. Вы предлагаете играя ценой сделать привязку к курсам. 250 будет курс 1 и так далее, при этом на часы, мне нужно всегда ставить коэффициент 50 тобиш {nlp}-200+{cms}-190 вариант конечно. Если нет лучшего, спасибо за этот.

Да, конечно, вам лучше именно делать калькулятор, основываясь на цене курсов.
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
Если можно узнать как написать формулу если мне нужно вычесть из каждого value ровно столько что бы осталось 50 и потом их сложить под rezult2
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Ну для каждого курса пропишите name, а в формуле сделайте так: rezult2=({kurs1}-200)+({kurs2}-150) и т.д.
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
Да я так и сделал, но в форме он сразу -630 пишет. Не красиво как то. Пытаюсь как то чрез result3 вывести. Но пока тчетно.
*

danavir

  • Захожу иногда
  • 96
  • 0 / 0
  • S.DAN
кто знает, как код расчета прописать при условии, что у вас должен быть вначале ноль в форме
на кнопках прописано 200 300 400 и так далее. Один вывод resilt1={1}+{1}+{1} их считает. А вот второй по тем же числам должен выводить на каждую нажатую кнопку вывод 50. В результате должно быть 50+50+50 result2=должен показать 150
такой вот код выводит сразу готовую сумму с минусом при не нажатых кнопках. result2=({1}-150)+({1}-250)+({1}-350) Не вариант.
Может, как то предварительно создать результат на каждый минус и сложить потом результат на выходе. У меня не получилось. Кто поможет.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Компонент Web Plan интерактивная карта для Joomla 1.5 (построение сайтов плановых объектов)

Автор DelaShop

Ответов: 39
Просмотров: 30443
Последний ответ 21.01.2018, 14:50:57
от Dinamitt
Калькулятор форм - продолжение

Автор osobist

Ответов: 2
Просмотров: 4050
Последний ответ 25.01.2015, 18:00:18
от dj_serg
Отрывной календарь Joomla, календарь событий.

Автор DelaShop

Ответов: 35
Просмотров: 30536
Последний ответ 17.12.2014, 06:20:05
от EndVal
Компонент " Просто каталог Joomla + Mixmarket Joomla "

Автор DelaShop

Ответов: 16
Просмотров: 17031
Последний ответ 10.07.2013, 11:06:13
от konservator