Всё увидел...
|
https://photos.google.com/search/_tr...aWbeZtHE?hl=ru
Необходимо ввести в область 1 количество горючего, при выборе в меню определённого пункта (область 2), а в области 3 отображается ТО количество горючего , которое необходимо выдать с учётом норм. |
Можно, но зачем, словами что не проще ответить? Спрашивается то простое.
Пишу все, далее думайте. Нельзя в DIV помещать TD. Пусть есть форма со списком, в котором по выбору рассчитывается нечто и отображается на клиенте как результат выбора. Данный расчет на клиенте чисто для клиента и серверу на него наплевать, ему нужен выбор клиента. То есть клиент выбрал, увидел, удовлетворился и отправил форму. Сервер по полученному значению произвел расчет и ... далее не знаю для чего. Вывод списка, что у вас, это какая-то профанация - переменная $_SESSION['temperatura'] не являясь набором может иметь только одно значение, а значит ваш список может иметь только 3 опции, так как опции выводятся по условию (и заметьте, что это у вас попытка вывода, ибо это не вывод, а сплошные ошибки), что, судя по задаче, совсем не то что нужно. Судя по "хотению" переменная $_SESSION['temperatura'] хранит ранее выбранное пользователем значение и если был выбор, то делает соответствующую опцию в списке выбранной. Но выводить список как каждую опцию отдельно, определяя выбор в списке, это не гут, вывод производится в цикле, а параметры опций определяются значениями из описанного набора. Коли у вас "руками" значит такой набор нужно описать в массиве. При этом опция <option>Выберите температуру</option> лишняя, так как опция <option value="1">Температура выше 0</option> фактически есть опция по умолчанию, то есть изначально это и есть выбор. //данные для выбора $data = [ 1 => ['title'=> 'Температура выше 0', 'percent'=>0], ['title'=> 'от 0 до -5 градусов', 'percent'=>.2], ['title'=> 'от -5 до -10 градусов', 'percent'=>.4], ['title'=> 'от -10 до -15 градусов', 'percent'=>.6], ['title'=> 'от -15 до -20 градусов', 'percent'=>.8], ['title'=> 'от -20 до -25 градусов', 'percent'=>.10], ['title'=> 'от -25 и ниже', 'percent'=>.12] ]; //вывод списка в форме (я не привожу код формы и как список располагается в ней) echo '<select name="percent" id="T">'; //если $_SESSION['temperatura'] определена (был уже выбор) и равна ключу массива данных, то опция списка будет выбрана foreach($data as $k=>$v) echo '<option data-percent="'.$v['percent'].'" value="'.$k.'" '.($_SESSION['temperatura']==$k ? 'selected' : null).'>'.$v['title'].'</option>'; echo '</select>'; Далее расчет на клиенте (код должен быть расположен ниже кода формы и элемента span в котором будет вывод расчета или ... ладно, пока опустим) <!-- в этом элементе будет отображается и сумма при расчете --> <span id="total">250</span> <script> var gor_vydat = 250; //откуда это берется вопрос, ну пусть где-то, как-то, в общем значение передано на клиента //рассчитываем по выбору document.getElementById('T').onchange = function() { document.getElementById('total').innerHTML = gor_vydat + gor_vydat * this.options[this.value-1].getAttribute('data-percent'); } </script> Пощелкал пользователь, выбрал, подходит ему, отправляет форму. Сервер принимая ее проверяет истинность данных и если ОК, производит расчет, выводит результат и опять форму, иначе какая надобность в $_SESSION['temperatura']? То есть прием формы должен быть кодом расположенным до вывода формы. if($d = (int)$_GET['percent'] AND key_exists($d, $data)) { //данные с клиента не левые, расчет $total = 250 + 250 * $data[$d]['percent']; //запомнить выбор в сессии $_SESSION['temperatura'] = $d; } Если форма должна отправляться при каждом выборе в списке, то никакого расчета на клиенте не надо (это нелогично), data атрибуты в опциях тоже не нужны, и по событию просто обновлять страницу с передачей текущего значения в списке. У меня не так много времени, чтобы вытягивать из вас по капельке, поэтому читайте, думайте и всегда отвечайте на вопросы полно. |
Ого! Большущая благодарность за проделанную работу! Приступаю к чтению и опробации! Ещё раз благодарю!
|
Понял на счёт вопросов. Буду стараться описывать ситуацию по полной! Удачи и Вам!
|
Часовой пояс GMT +3, время: 02:10. |