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

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Называется, я вернулся) Неправильно что-то считает калькулятор + почему-то не выводятся переменные
Ссылка на калькулятор: http://komtag.ru/calc

Код калькулятора:
Код
<script type="text/javascript">
function calcCost() {
           var obem = document.getElementById("obem").value;
           var tolschina = document.getElementById("tolschina").value;
           var krishka = document.getElementById("krishka").value;
           var koleso = document.getElementById("koleso").value;
           var kolvo = document.getElementById("kolvo").value;
           var itog = (obem + tolschina + krishka + koleso)*kolvo;
}
function look(type){
param=document.getElementById(type);
if(param.style.display == "none")
param.style.display = "block";
else
param.style.display = "none"
}
</script>

<table width="100%">
<tr><td align="center">
<img src="../images/calc/Prosto_konteyner_ris_1.png" width="125" height="150"><br />
<span style="font-weight: bold; font-size: 20px;">Объём</span> <br />
<select name="obem" id="obem" class="calc">
<option value="0">Выбрать</option>
<option value="10">0.5</option>
<option value="10">0.63</option>
<option value="10">0.75</option>
<option value="10">0.8</option>
</select>
</td><td align="center">
<img src="../images/calc/Tolschina_stenki_ris_2.png" width="125" height="150"><br />
<span style="font-weight: bold; font-size: 20px;">Толщина</span><br />
<select name="tolschina" id="tolschina" class="calc">
<option value="0">Выбрать</option>
<option value="10">1.5</option>
<option value="10">2</option>
<option value="10">3</option>
</select>
</td><td align="center">
<img src="../images/calc/Kryshka_ris_3.png" width="188" height="150"><br />
<span style="font-weight: bold; font-size: 20px;">Крышка</span> <br />
<select name="krishka" id="krishka" class="calc">
<option value="0">Нет</option>
<option value="10">1.5 мм.</option>
<option value="10">2 мм.</option>
</select>
</td><td align="center">
<img src="../images/calc/S_kolesami_ris_4.png" width="125" height="150"><br />
<span style="font-weight: bold; font-size: 20px;">Колёса</span> <br />
<select name="koleso" id="koleso" class="calc">
<option value="0">Нет</option>
<option value="10">100 мм.</option>
<option value="10">125 мм.</option>
<option value="10">160 мм.</option>
</select>
</td><td align="center">
<img src="../images/calc/Kolichestvo_ris_5.png" width="188" height="150"><br />
<span style="font-weight: bold; font-size: 20px;">Количество</span> <br />
<select name="kolvo" id="kolvo" class="calc">
<option value="0">Выбрать</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</td></tr>
</table>
<br /><br />
<div id="podschet"><input type="button" class="raschet" onclick="calcCost()" value="Рассчитать" /></div><br /><br />
<div id="result">
Полезный объём: <b>{obem} м<sup>3</sup> </b> <br /><br />
Способ доставки: <b>Автотранспорт</b> <br /><br />
 
</div><!---#result--->

формула:
Код
itog=({obem}+{tolschina}+{krishka}+{koleso})*{kolvo}

На данный момент в селекторах стоят тестовые значения, равные 10 рулям. То есть при выборе всех четырёх опций сумма должна быть 40 рублей. Но показывает почему-то 30.  Также ниже хочу вывести кроме цены ещё и объём, но эта переменная не отображается, не знаю почему.

Подскажите пожалуйста
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Код страницы:
Код: html4strict
<select name="obem" id="obem" class="calc">
и ниже:
Код: html4strict
<input type="hidden" id="obem" name="obem" value="">
Дублирование ID
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Код страницы:
Код: html4strict
<select name="obem" id="obem" class="calc">
и ниже:
Код: html4strict
<input type="hidden" id="obem" name="obem" value="">
Дублирование ID

Хм, да, в коде самой страницы это есть, но вот интересно то, что в саомм коде калькулятора этой строки нет. Откуда оно берётся? И как этого избежать?
*

mozerov

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Вопрос.
Сделал калькулятор. Люди просят разместить мой калькулятор на своем сайте (не на Joomla). Можно его как-нибудь через iframe линкануть с другой админки?
Заранее спасибо!
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Можно. Я правда не iframe делал, а просто всю калькуляцию делал с помощью JS и вставлял в компонент отправки форм нужной CMS. Тем более что данный компонент в принципе и есть голый HTML форм + почти голый JS вычислений. Осталось только синтаксис подправить и ставить куда угодно.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

streelok

  • Захожу иногда
  • 331
  • 0 / 6
когда создаю форму  Шаблон email сообщения и Шаблон сообщения при отсылке формы не могу отредоктировать, оно все делает в одну строчку.. как бы я не старался результат одинаков. Joomla 3
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Может кто-нибудь пробовал реализовать такое решение:
пользователь вводит два разных значения (независимых друг от друга) для расчёта стоимости, а ему выводится то, которое больше.
Вообще можно ли это реализовать с помощью данного компонента?
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
x присвоить значение 1-го числа
y присвоить значение 2-го числа
z - то что больше
и далее JS (работает и без всяких компонентов)

Код: javascript
z = Math.max(x, y);
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

AlexeyFrolov

  • Новичок
  • 3
  • 0 / 0
Всем привет!
Честно, читал форум долго, либо я слепой либо одно из двух))) Но ответов так и не нашел!

Вопрос1:
Подскажите плз как сделать следующее, есть форма калькулятора, в ней есть поля выбора опций расчёта, типа:
 <td>Наименование пакета</td>
    <td><select name="master1" id="master1" size="1" onchange="izmen()" class="validate['required']">
      <option value="0" selected>---</option>
      <option value="15000">Фотокнига</option>
      <option value="12000">Фотографии</option>
      <option value="14980">Фотокнига+Фотографии</option>
      <option value="11980">Только Диск</option>
    </select></td>

И форма отправки сообщения:

Здравствуйте {fiouser} !
Вы оставили заявку на сайте.....
Дата:  {date}
Наименование пакета: {master1}

Так вот в это поле вставляется переменная из value, а должно вставляться наименование услуги, подскажите как реализовать?

Вопрос2:
Как копию сообщения отправлять пользователю?
В форме есть ввод адреса, но куда его и как вставить чтобы кроме админского ящика копия отправлялась и ему?
 <tr>
    <td><span class="name">Ваш e-mail:</span></td>
    <td><span class="point">
      <input type="text" name="emailuser" size="55" class="validate['required','email']" />
    </span></td>
  </tr>

Заранее спасибо, очень жду ответов)))
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Люди добрые, кто подскажет?
Я вообще не программист, всё сделал по примерам из этого форума. Отдельное спасибо alexj69, sashahz и Pazys. Основной функционал работает как и надо, но не могу вывести значение "itog":
Спойлер
[свернуть]


Дальше код формулы:
Спойлер
[свернуть]

Я понимаю, что функцию "zw()" я вставил вообще не туда, но куда вставлять, вообще, не представляю, и та ли эта функция?
И можно ли в коде формулы использовать данную конструкцию: result3={z}?
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
x присвоить значение 1-го числа
y присвоить значение 2-го числа
z - то что больше
и далее JS (работает и без всяких компонентов)

Код: javascript
z = Math.max(x, y);

Спасибо. А как тут плюсовать?
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Люди добрые, кто подскажет?
Я вообще не программист, всё сделал по примерам из этого форума. Отдельное спасибо alexj69, sashahz и Pazys. Основной функционал работает как и надо, но не могу вывести значение "itog":
Спойлер
[свернуть]


Дальше код формулы:
Спойлер
[свернуть]

Я понимаю, что функцию "zw()" я вставил вообще не туда, но куда вставлять, вообще, не представляю, и та ли эта функция?
И можно ли в коде формулы использовать данную конструкцию: result3={z}?

Вопросы закрыты.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Спасибо. А как тут плюсовать?
Слева, где аватар ... там есть репутация и под ней +/- ... только вроде надо 10 сообщений сначала чтоб было.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Кто-нибудь пробовал сделать так, чтобы при вводе значения пользователем результат имел какую-то нижнюю границу, минимум. То есть, в моём калькуляторе если вводится 60кг, то идёт умножение на коэффициент 1 и если вводится 50 кг, то тоже на коэф. 1, а мне нужно чтобы при значении равном или менее 56кг сумма равнялась 300. Учитывая то, что в формуле результат у меня равен значению пользователя умноженному на коэф., то действовать можно только через js. Кто-нибудь знает как действовать?
Второй вопрос по выводу результата. В моём калькуляторе, я смог реализовать вывод result3 только через window.alert, а хотелось бы чтобы отображалось под кнопкой "рассчитать". Какое событие нужно прописать?
И ещё вопрос по дробным числам. Если их записывать через запятую, то значения отличаются от тех, что получаются при записи через точку. Это особенности языка или можно исправить?
Спойлер
[свернуть]


Код формулы:
Спойлер
[свернуть]
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Кто-нибудь пробовал сделать так, чтобы при вводе значения пользователем результат имел какую-то нижнюю границу, минимум. То есть, в моём калькуляторе если вводится 60кг, то идёт умножение на коэффициент 1 и если вводится 50 кг, то тоже на коэф. 1, а мне нужно чтобы при значении равном или менее 56кг сумма равнялась 300. Учитывая то, что в формуле результат у меня равен значению пользователя умноженному на коэф., то действовать можно только через js. Кто-нибудь знает как действовать?
Второй вопрос по выводу результата. В моём калькуляторе, я смог реализовать вывод result3 только через window.alert, а хотелось бы чтобы отображалось под кнопкой "рассчитать". Какое событие нужно прописать?
И ещё вопрос по дробным числам. Если их записывать через запятую, то значения отличаются от тех, что получаются при записи через точку. Это особенности языка или можно исправить?
Спойлер
[свернуть]


Код формулы:
Спойлер
[свернуть]
1.
Это обычные условия, если Х меньше или ранвно 56 то сумма = 300, переводим в синтаксис JS:
Код: javascript
if (x <= 56) { summa = 300} 
Если испытываете проблемы с этим - рисуйте блок-схему, потом в JS синтаксис переводите.
2.
Код: javascript
$( "#myid" ).html( summa + " руб." );
(тут пример на jQuery)
3.
Особенности. Пишите через точку. Исправлять не надо.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
1.
Это обычные условия, если Х меньше или ранвно 56 то сумма = 300, переводим в синтаксис JS:
Код: javascript
if (x <= 56) { summa = 300} 
Если испытываете проблемы с этим - рисуйте блок-схему, потом в JS синтаксис переводите.
2.
Код: javascript
$( "#myid" ).html( summa + " руб." );
(тут пример на jQuery)
3.
Особенности. Пишите через точку. Исправлять не надо.
1. Это я делал, но выводится результат через формулу {ves}*{koef}, где в нашем случае x и будет koef.
2. Не понял к чему это - к выводу минимального значения или к замене window.alert?
3. Спасибо.
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
1. Тогда вышеуказанное + выводите через формулу {summa} , Тоесть сначала считаете сумму, summa=ves*koef если ves <= 56, то сумма=300 - а потом выводите результат
2. К замене
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Aleks Al

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
1. Тогда вышеуказанное + выводите через формулу {summa} , Тоесть сначала считаете сумму, summa=ves*koef если ves <= 56, то сумма=300 - а потом выводите результат
2. К замене

1. Так я и говорю, как черех формулу компонента вывести это условие? Надо через js. Или есть способ?
2. Попробую. Заранее спасибо.
 
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
1. Не знаю, я не работаю с этим компонентом. А где работал раньше - то там сайты уже обновил и везде на jQuery переделал.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

Rust69

  • Новичок
  • 8
  • 0 / 0
Здравствуйте, подскажите можно ли сделать чтобы результаты расчета открывались уже после нажатия кнопки рассчитать, а не в самой форме где клиент заполняет параметры,  как -то можно это реализовать?
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
На кнопку повесить JS событие onclick и там функция показа результата.

http://api.jquery.com/html/
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

AlexeyFrolov

  • Новичок
  • 3
  • 0 / 0
Добрый день!
Ребят ну подскажите плз по вопросу, это вообще ерунда же))) Я не программер у меня не получается у самого(((

Вопрос1:
Подскажите плз как сделать следующее, есть форма калькулятора, в ней есть поля выбора опций расчёта, типа:
 <td>Наименование пакета</td>
    <td><select name="master1" id="master1" size="1" onchange="izmen()" class="validate['required']">
      <option value="0" selected>---</option>
      <option value="15000">Фотокнига</option>
      <option value="12000">Фотографии</option>
      <option value="14980">Фотокнига+Фотографии</option>
      <option value="11980">Только Диск</option>
    </select></td>

И форма отправки сообщения:

Здравствуйте {fiouser} !
Вы оставили заявку на сайте.....
Дата:  {date}
Наименование пакета: {master1}

Так вот в это поле вставляется переменная из value, а должно вставляться наименование услуги, подскажите как реализовать?
*

streelok

  • Захожу иногда
  • 331
  • 0 / 6
не сохраняет теги в письме шаблона что делать?
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Добрый день!
Ребят ну подскажите плз по вопросу, это вообще ерунда же))) Я не программер у меня не получается у самого(((

Вопрос1:
Подскажите плз как сделать следующее, есть форма калькулятора, в ней есть поля выбора опций расчёта, типа:
 <td>Наименование пакета</td>
    <td><select name="master1" id="master1" size="1" onchange="izmen()" class="validate['required']">
      <option value="0" selected>---</option>
      <option value="15000">Фотокнига</option>
      <option value="12000">Фотографии</option>
      <option value="14980">Фотокнига+Фотографии</option>
      <option value="11980">Только Диск</option>
    </select></td>

И форма отправки сообщения:

Здравствуйте {fiouser} !
Вы оставили заявку на сайте.....
Дата:  {date}
Наименование пакета: {master1}

Так вот в это поле вставляется переменная из value, а должно вставляться наименование услуги, подскажите как реализовать?

Код: html4strict
<select name="master1" id="master1" size="1" onchange="izmen()" class="validate['required']">
      <option value="0" selected>---</option>
      <option value="15000">Фотокнига</option>
      <option value="12000">Фотографии</option>
      <option value="14980">Фотокнига+Фотографии</option>
      <option value="11980">Только Диск</option>
</select>
<script>
function izmen(){
    var selected = document.getElementById('master1').options[document.getElementById('master1').selectedIndex].text;;
    alert(selected);
};
</script>
Попробуйте этот код вставить в новую HTML и проверить его работу.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

AlexeyFrolov

  • Новичок
  • 3
  • 0 / 0
Код: html4strict
<select name="master1" id="master1" size="1" onchange="izmen()" class="validate['required']">
      <option value="0" selected>---</option>
      <option value="15000">Фотокнига</option>
      <option value="12000">Фотографии</option>
      <option value="14980">Фотокнига+Фотографии</option>
      <option value="11980">Только Диск</option>
</select>
<script>
function izmen(){
    var selected = document.getElementById('master1').options[document.getElementById('master1').selectedIndex].text;;
    alert(selected);
};
</script>
Попробуйте этот код вставить в новую HTML и проверить его работу.

Неа, что то не то, всё равно приходит такой текст в сообщении(((

Здравствуйте s !
Вы оставили заявку на свадебную фотосессию
Дата:  2014-01-10
Наименование пакета: 14980
Продолжительность съемки: 20
Размер фотокниги: 3000
Тип обложки: 150
Количество разворотов: 0
Размер фотографий: 30
Количество фотографий: 5
Есть скидка: 0,1
*

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
По моему коду должна появится табличка (алерт) с названием опции (а не значением). Это просто код для HTML странички, не для компонента и даже не для Joomla. Там переменной selected присваивается значение выбранной опции. Как это вставить в компонент, я точно не знаю. Возможно переменной компонента можно присвоить значение переменной selected. Вы просто создайте HTML страничку с вышеуказанным кодом и посмотрите как он работает ... я, к сожалению, не смогу дать вам готовое решение ... я не работаю с этим компонентом ... помню, что он на JS работает, поэтому и ваше решение пишу на JS.
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

NRJalex

  • Осваиваюсь на форуме
  • 24
  • 1 / 0
постоянно перезагружается страница, на которой вставлен калькулятор
проверил на разных пк, разных страницах, даже демка дергает страницу постоянно!
у кого то было такое замечено?
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
Кто-нибудь пробовал сделать так, чтобы при вводе значения пользователем результат имел какую-то нижнюю границу, минимум. То есть, в моём калькуляторе если вводится 60кг, то идёт умножение на коэффициент 1 и если вводится 50 кг, то тоже на коэф. 1, а мне нужно чтобы при значении равном или менее 56кг сумма равнялась 300. Учитывая то, что в формуле результат у меня равен значению пользователя умноженному на коэф., то действовать можно только через js. Кто-нибудь знает как действовать?
Второй вопрос по выводу результата. В моём калькуляторе, я смог реализовать вывод result3 только через window.alert, а хотелось бы чтобы отображалось под кнопкой "рассчитать". Какое событие нужно прописать?
И ещё вопрос по дробным числам. Если их записывать через запятую, то значения отличаются от тех, что получаются при записи через точку. Это особенности языка или можно исправить?
Спойлер
[свернуть]


Код формулы:
Спойлер
[свернуть]
Что-то давненько я не заходил на форум, а тут столько интересных вопросов)))
1. Уберите из скрипта
Код
zw=(function(){
var x = document.getElementById("result").value;
var y = document.getElementById("result2").value;
var z = Math.max(x, y);
window.alert(z);

Ваша формула:
result3=Math.max({ves}*{koef}, {obyom}*{koef1})

Точно также через Math.max можно определить нижнюю границу результата по обоим переменным вес/объем
*

alex_d55

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Тоже самое везде перезагружает страницу :o  ! Подскажите, в чем может быть проблема?
*

alexj69

  • Захожу иногда
  • 244
  • 28 / 0
  • Думать надо!!!
постоянно перезагружается страница, на которой вставлен калькулятор
проверил на разных пк, разных страницах, даже демка дергает страницу постоянно!
у кого то было такое замечено?
Почитайте на форуме, я где-то в начале этой ветки выкладывал решение. Суть в том, что при одном селекте передавать в два скрытых поля разные значения: в первое - цена, во второе - название. Тогда при расчете вы используете первое поле, а для отправки на е-мейл - второе
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор DelaShop

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

Автор osobist

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

Автор DelaShop

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

Автор DelaShop

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