Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   пересчет суммы в заказе в зависимости от выбраных чекбоксов (https://javascript.ru/forum/dom-window/29391-pereschet-summy-v-zakaze-v-zavisimosti-ot-vybranykh-chekboksov.html)

rick_77 29.11.2018 15:12

Задача такая. Необходимо руководствуясь температурой окружающей среды выдать для заправки автомобиля количество горючего в соответствии с нормой, а именно:
- если температура воздуха от 0 до -5 то к наливаемому горючему добавляется ещё 2 %;
- если температура воздуха от -5 до -10 то к наливаемому горючему
добавляется ещё 4 %;
- если температура воздуха от -10 до -15 то к наливаемому горючему добавляется ещё 6 %...
и так далее.
Я пытаюсь реализовать так, что бы при выборе пункта меню на выходе я получил количество горючего, которое хранится в переменной gor_vydat ПЛЮС сверху добавляется количество по норме.

rick_77 29.11.2018 15:15

Поскольку я начинающий, то я параллельно ищу ответ на вопрос и реализовываю его сразу. На практике лучше изучается.

laimas 29.11.2018 15:28

Неизвестно Откуда на сервере берутся данные (по уму это должна быть база), но если по минимуму то достаточно массива и гораздо простого вывода списка:

<?php
$arr = [2=>['title'=>'от 0 до -5 градусов', 'percent'=> 2], ...];
?>
<select id="temperatura" onchange="document.location=OnChange="Rasch_Gor(\' temperatura\',this.options[this.selectedIndex].value" title="Температура среды"/>
<option>Выберите температуру</option>
<option value="1" data-percent="0">Температура выше 0</option>
<option value="<?=$_SESSION['temperatura']?>" data-percent="<?=$arr[$_SESSION['temperatura']]['percent']?>"><?=$arr[$_SESSION['temperatura']]['title']?></option>
</select>


Получить и рассчитать несложно. Но вот это onchange="document.location=OnChange="Rasch_Gor .... нечто неописуемое, и к тому же, пусть рабочее, тогда о каком расчете на клиенте идет речь?

PS. Еще раз - вы понимаете, что ваш список будет содержать не все опции для выбора или нет? Случаем не значение ли ранее выбранного, хранящегося в сессии, нужно отметить в списке?

rick_77 29.11.2018 15:46

Такой вот тип меню я взял с нета, немного адаптировал под свои требования, по сути я ещё не знаю что значит эта строка. Применил, она заработала и далее ищу ответы на вопросы. Поэтому и спрашиваю, может сменить тип выпадающего меню, что бы можно было выполнить поставленную задачу?

rick_77 29.11.2018 15:47

данные вводятся вручную, но записываются в базу

rick_77 29.11.2018 15:49

Вот таким образом и вводится
<div style="position: absolute; width: 159px; height: 47px; z-index: 2; left: 10px; top: 185px" id="layer19">
<tr>
<td>Выдать горючего, л.:</td>
<td><input type="text" name="vydat" size = 15 title = "Выдано горючего"></td>
</tr>

laimas 29.11.2018 15:51

Вы не отвечаете на вопросы:

1) где нужно производить на расчет - на сервере или на клиенте?
2) если на клиенте, то почему по событию выбора в списке прописан переход?
3) что вы хотите "смудрить" со списком на сервере используя переменную в сессии?

rick_77 29.11.2018 15:57

Установлен Денвер, dbForge и SublimeText. Сервер локальный.

laimas 29.11.2018 16:02

Цитата:

Сообщение от rick_77
Установлен Денвер, dbForge и SublimeText. Сервер локальный.

А это каким образом относится к вопросам? :D

Неужто вопросы непонятны? Попробуем так:

а) при выборе в списке (то есть при каждом изменении в нем) выбор пользователя отправляется на сервер и там производится расчет?

б) при выборе в списке рассчитывается на клиенте, а на сервер отправляется отправлением формы (submit)?

Какой из вариантов требуется?

rick_77 29.11.2018 16:29

Подскажите, здесь возможно присоединить скриншот? Я бы показал наглядно.


Часовой пояс GMT +3, время: 16:40.