mikanti
8.07.2014 - 15:41
Здравствуйте! Имеется форма обратной связи: "Запись на прием к врачу". В ней есть пункт с раскрывающимся списком, который содержит два элемента: "Город", "Село". Нужно сделать так, чтобы когда был активен элемент "Село", снизу было одно поле для ввода названия села, а если будет выбран "Город", то чтобы снизу появилось 5 полей для ввода. Как это организовать? В php не силен, использую плагин формы обратной связи "Contact form 7" в Wordpress.
McLotos
8.07.2014 - 15:47
Берете JavaScript и пишите функцию, которая в зависимости от выбора (событие onchange) будет менять содержимое формы. или ещё проще. заранее создаете две формы, и когда срабатывает onchange одну прячете а другую показываете (меняете событие visibility или событие display на формах)
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
mikanti
8.07.2014 - 16:24
Дело в том, что в форме есть пункты выше, которые пользователь уже заполнит.
Как я понимаю, используя Ваш способ, все, что будет заполнено выше, сотрется или как?
McLotos
8.07.2014 - 16:28
Нет, если будете менять не всю форму, а только поля. например при событие onchange скрыть одни поля и показать другие
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
McLotos
8.07.2014 - 16:34
Я не силен в JS, но по-моему как-то так
допустим селект имеет id="specialist"
тогда
делаем так
<select id="specialist" name="specialist" onchange="MyFunction(this.id)">
а теперь сама функция
MyFunction(elem){
тут мы проверяем какое значение пришло в функцию.
Это можно сделать IF или кейсами
потом в зависимости от варианта меняем значение display, наверное как-то так
document.getElementById(тут ID элемента который нужно скрыть или показать).style.display
}
какие значения может принимать параметр display это есть в документации к CSS
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
McLotos
8.07.2014 - 16:38
Я бы сказал намного больше, если бы вместо картинок получил сюда код. =)
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
mikanti
8.07.2014 - 16:48
Код с шаблона формы плагина :<p>Дата (с завтрашнего дня)<br />
[date date-963] </p>
<p>Специалист (врач)<br />
[select menu-502 "Терапевт" "Педиатр" "Онколог" "Хирург"
"Нарколог" "Психиатр" "Дерматовенеролог" "Акушер-гинеколог"
"Отоларинолог" "Офтальмолог" "Эндокринолог" "Подростковый врач"
"Хирург" "Невропатолог" "Кардиолог" "Инфекционист"
"Ревматолог" "Фтизиатр" ] </p>
<p>Ваш адрес:<p/>
[select menu-256 "Город" "Село"]
<p>Город:<br />
[textarea textarea-297 class:address] </p>
<p>Село:<br />
[textarea textarea-824 class:address]</p>
<p>Улица:<br />
[textarea textarea-314 class:address] </p>
<p>Дом:<br />
[textarea textarea-286 class:address] </p>
<p>Префикс дома А, Б (если имеется):<br />
[textarea textarea-640 class:address] </p>
<p>Квартира:<br />
[textarea textarea-796 class:address] </p>
<p>Ф.И.О.:<br />
[text* your-name] </p>
<p>ИИН:<br />
[textarea textarea-428 /12 class:calldoctor] </p>
<p>Ваш e-mail:<br />
[email* your-email] </p>
<p>Номер телефона:<br />
[tel tel-254] </p>
<p>Причина обращения:<br />
[textarea your-message] </p>
<p>Введите код с картинки:<br />
[captchac captcha-228] </p>
[captchar captcha-228]
<p>[submit "Отправить"]</p>
Я бы хотел сделать форму сам , но пока мои умения и знания не позволяют этого, что и в PHP, и в JavaScript)
McLotos
8.07.2014 - 16:54
что это?
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
mikanti
8.07.2014 - 16:59
Это плагин "формы обратной связи", который генерирует теги таким образом. Вот тут то я и хотел вставить код, который решит мою проблему.
mikanti
8.07.2014 - 17:04
Цитата (SergeySA @ 8.07.2014 - 16:34) |
Я не силен в JS, но по-моему как-то так допустим селект имеет id="specialist" тогда делаем так <select id="specialist" name="specialist" onchange="MyFunction(this.id)">
а теперь сама функция MyFunction(elem){ тут мы проверяем какое значение пришло в функцию. Это можно сделать IF или кейсами потом в зависимости от варианта меняем значение display, наверное как-то так document.getElementById(тут ID элемента который нужно скрыть или показать).style.display } какие значения может принимать параметр display это есть в документации к CSS |
Спасибо! Буду пробовать.
McLotos
8.07.2014 - 17:06
Хорошо. отпишите к чему пришли. если что ещё подскажу
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.