Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Событие onchange для заполненного селекта

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: или как быть?
alsio
Отправлено: 29 Января, 2013 - 15:01:49
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Есть 2 страницы:
new.php - форма для записи данных в БД.
update.php - та же форма, но уже заполненная из БД ранее введенными данными в new.php

Форма в new.php имеет разные виды полей, в т.ч. селекты, в зависимости от выбора в которых по событию onchange раскрываются/скрываются дополнительные поля формы.

Так вот при первичном вводе данных все работает, т.к. мы всегда что-то выбираем в селекте => есть событие onchange.

Вопрос, как быть с update.php ? Там значения селектов уже выбраны из БД => события onchange не происходит и доп. поля формы не раскрываются/скрываются.

Как быть в этой ситуации? Может быть здесь нужно использовать не onchange, или вообще какой-то специальный js нужен?

Прошу помощи! (если нужны какие коды/скрипты из того, что сейчас есть - выложу).
 
 Top
IllusionMH
Отправлено: 29 Января, 2013 - 15:16:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




alsio, делать это на сервере.
Ну или воспользоваться гуглом и найти на stackowerflow
http://stackoverflow[dot]com/questio[dot][dot][dot]e-event-manually
 
 Top
Zuldek
Отправлено: 29 Января, 2013 - 15:23:40
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Не совсем понятен вопрос.
При заполнении формы у вас при заполнении некоторых полей появляются дополнительные поля.
Очевидно что в заполненной форме вы хотите вывести занесенные в неё данные, посему непонятно почему дополнительные поля должны выводиться у вас по какому-то событию.
При выборке данных для страницы вы собираете данные для формы, включая дополнительные поля и выводите их, если данные заполнены.

Если речь идет о том чтобы разворачивать дополнительные поля только при определенном действии, - ну привяжите это к любому действую, - клике по ссылке или по родительскому элементу форму.

(Отредактировано автором: 29 Января, 2013 - 15:25:22)

 
 Top
alsio
Отправлено: 29 Января, 2013 - 22:45:37
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Zuldek пишет:
Не совсем понятен вопрос


Вопрос, как произвести событие в update.php, где выбор уже загружен в селект (не выбран пользователем, а уже загружен вместе со страницей) ?

Например.
new.php
Селект "Выберите ТС" => Автомобиль
Появился селект "Модель" => ВАЗ
ЗАПИСАЛИ в БД

Вспомнили, что ВАЗ давно продан, и у нас КАМАЗ.
Открываем update.php (по соотв. id записи) и видим следующее:
Селект Автомобиль
Селект ВАЗ

И теперь правим второй селект на КАМАЗ.
 
 Top
alnik-75
Отправлено: 30 Января, 2013 - 15:19:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


Помог: 0 раз(а)




Все равно не понимаю. Более детально объясните.
когда с помощью селектов что-то внесли в базу. Потом то, что внесено в БД, выводится опять в селектах путем добавления соответствующему оптиону значения selected.
Я правильно понимаю?
 
 Top
alsio
Отправлено: 31 Января, 2013 - 11:24:09
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


alnik-75 пишет:
Я правильно понимаю?


Все верно.
 
 Top
alnik-75
Отправлено: 31 Января, 2013 - 12:41:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 338
Дата рег-ции: Сент. 2012  
Откуда: Гродно, Беларусь


Помог: 0 раз(а)




и что далее?
 
 Top
alsio
Отправлено: 01 Февраля, 2013 - 07:42:34
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


alnik-75 пишет:
и что далее?


А далее вопрос, как быть с update.php ? Там значения селектов уже выбраны из БД => события onchange не происходит и доп. поля формы не раскрываются/скрываются.
 
 Top
Zuldek
Отправлено: 01 Февраля, 2013 - 09:18:46
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




alsio пишет:
alnik-75 пишет:
и что далее?


А далее вопрос, как быть с update.php ? Там значения селектов уже выбраны из БД => события onchange не происходит и доп. поля формы не раскрываются/скрываются.


Повторяю Вам еще раз, что если данные у вас уже сохранены в БД, то на странице update.php вам не нужно никакое событие onchange - вы выводите сразу всю форму вместе с дополнителньыми полями.
Это на странице add.php у вас:
1. Первые селект - Выбор АС
2. В зависимости от выбор в селекте 1 открываем разные дополнительные поля.

На странице update.php вам известно, что АС у вас - автомобиль, и марка его - ВАЗ, поэтому вы:
1. Выводите селект Выбор АС со значением "автомобиль"
2. Выводите под ним селект "Марка" со значением "ВАЗ".

Зачем вам событие Onchange тут для вывода уже известных дополнительных полей?
Оно вам может быть нужно только если опять будет изменено значение селекта №1и нужно будет вывести другие дополнительные поля (а не выбор марки автомобиля), либо может потребоваться при изменении значения селекта №2 (для сохранения данных по Ajax-запросу или выводу дополнительных полей к селекту №2)

Поэтому мне не понятно что тут Вам может быть не понятно.

(Отредактировано автором: 01 Февраля, 2013 - 09:21:18)

 
 Top
alsio
Отправлено: 01 Февраля, 2013 - 12:08:56
Post Id


Гость


Покинул форум
Сообщений всего: 87
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)

[+]


Zuldek, в том то и дело, что в update.php может быть изменено значение селекта №1 => понадобится выводить другой селект №2...

Т.е. только с помощью ajax? Не направите в сторону примеров подобного?
 
 Top
Zuldek
Отправлено: 01 Февраля, 2013 - 12:37:01
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




alsio пишет:
Zuldek, в том то и дело, что в update.php может быть изменено значение селекта №1 => понадобится выводить другой селект №2...

Т.е. только с помощью ajax? Не направите в сторону примеров подобного?

Почему только. Вы проделываете тоже самое, что на шаге добавления: при выборе зачения 1 показываете связанные дополнительные поля.
Варианта реализации 2:
1. При загрузке страницы вы извлекаете все дополнительные поля всех возможных значений выбранных полей. Потом по onchange значения показываете связанные с ним дополнительные поля/
2. Проделываете все тоже самое, только дополнительные поля загружаете не перед выводом страницы, а асинхронно, через AJAX-запрос. Передаете обработчику id значения поля, по нему извлекаете нежные параметры для вывода дополнительного поля (селекта), отправляете их обратно и выводите дополнительный селект, скрывая уже заполненное дополнительное поле.

Проще говоря, вы должны изначально извлечь все "селекты 2" для "селекта 1" либо извлекать их по Ajax-запросу, когда пользователь выбирает другое значение для "селекта 1".

(Отредактировано автором: 01 Февраля, 2013 - 12:39:22)

 
 Top
IllusionMH
Отправлено: 01 Февраля, 2013 - 13:50:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




у меня складывается ощущение, что я пишу невидимые сообщения.
IllusionMH пишет:
alsio, делать это на сервере.

Ппц, столько обсуждения несуществующей проблемы: если известны значения селектов, то известны какие блоки должны быть видимы.
Правильный вариан: СРАЗУ НА СЕРВЕРЕ В update.php нужные блоки делать видимыми. В стилях скрыть все и нужным добавить style="dispaly: block"
Этот файл должен быть практически один в один с new.php, и даже можно сделать 1 файл, но проверять есть данные - выводи и позволяем изменить, если нет - сохраняем новые.

Альтернативный: имитировать событие изменения, как описано по ссылке

(Отредактировано автором: 01 Февраля, 2013 - 13:53:44)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB