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 :: Помогите объединить SELECT и Радиокнопку

 PHP.SU

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


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

> Описание: не могу передать данные джамп меню и радиокнопки одновременно
A.B.C.
Отправлено: 28 Октября, 2010 - 16:58:20
Post Id



Новичок


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


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




Задача такая, есть радиокнопка и два варианта к ней, ниже стоят 3 джамп меню...т.е. всплывающих списка, которые при выборе сразу прыгают по ссылке и передают переменные.
Юзер выбирает свой вариант кнопки, а затем выбирает в меню нужный пункт и две переменных тут же летят в исполняющий скрипт. Но чскрипт робит только если меню одно!!! Если их два или 3 то уже все...он запоминает как я понимаю последнее имя селекта и работает только с ним:

1.php

CODE (javascript):
скопировать код в буфер обмена
  1. <script type="text/JavaScript">
  2. <!--
  3. function MM_jumpMenu(targ,selObj,restore){ //v3.0
  4.   eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  5.   if (restore) selObj.selectedIndex=0;
  6. }
  7. //-->
  8. </script>


PHP:
скопировать код в буфер обмена
  1. <?PHP if (isset($_POST['smok'])) {print "Курит?".$_POST['smok'];}?>
  2. <?PHP if (isset($_POST['menu1'])) {print "Возраст?".$_POST['menu1'];}?>

CODE (html):
скопировать код в буфер обмена
  1. <form name="sd"  method="POST" action="1.php">
  2. Вы курите?
  3. <input name="smok" type="radio" value="Да" checked="checked">Да
  4. <input name="smok" type="radio" value="Нет">Нет
  5. <br>
  6. <select  name="menu1"   onChange="this.form.submit();">
  7. <option value="T=1">Вы женщина и вам до 30 лет</option>
  8. <option value="T=2">Вы женщина и вам от 30 лет до 60</option>
  9. <option value="T=3">Вы женщина и вам больше 60 лет </option>
  10. </select>
  11. <br>
  12. <select  name="menu1"   onChange="this.form.submit();">
  13. <option value="T=4">Вы мужчина и вам до 30 лет</option>
  14. <option value="T=5">Вы мужчина и вам от 30 лет до 60</option>
  15. <option value="T=6">Вы мужчина и вам больше 60 лет </option>
  16. </select>
  17. <br>
  18. <select  name="menu2"   onChange="this.form.submit();">
  19. <option value="T=7">Вы подросток и вам младше 10 лет</option>
  20. <option value="T=8">Вы подросток и вам от 10 до 14 лет </option>
  21. <option value="T=9">Вы подросток и вам от 14 до 18 лет </option>
  22. </select>
  23. </form>

(Отредактировано автором: 28 Октября, 2010 - 17:08:59)

 
 Top
OrmaJever Модератор
Отправлено: 28 Октября, 2010 - 17:06:30
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




во-первых код нужно писать в специальных тегах!
во-вторых у каждого меня должено быть разное имя и потом каждое меню будет с разным ключём масива.
$_POST['menu1']
$_POST['menu2']


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
A.B.C.
Отправлено: 28 Октября, 2010 - 17:13:49
Post Id



Новичок


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


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




У меня сейчас это все робит нормально, только в форме стоит GET метод передачи, и нет радиокнопки...при выборе прилетают нужные переменные все как надо ...единственное, что я не могу их заставить флажок прицепить как-то...
(Добавление)
Цитата:
во-вторых у каждого меня должено быть разное имя и потом каждое меню будет с разным ключём масива.


причем имя у всех селектов одно и тоже...
(Добавление)
и селект у меня вот такой без радиокнопки который
CODE (html):
скопировать код в буфер обмена
  1. <select  name="menu1"   onChange="MM_jumpMenu('parent',this,0)">
 
 Top
zardoz
Отправлено: 28 Октября, 2010 - 23:05:26
Post Id


Гость


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


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




A.B.C. пишет:
onChange="this.form.submit();"

Всё, дело в этом. Любой первый измененный список посылает через форму все данные других списков, и те списки куда юзер еще не дошел.
Можно изменить логику:
1) добавить все же кнопку типа submit (и убрать в списках onChange="this.form.submit();)
2) поставить 3 списка перед радиокнопкой (тоже убрать в списках onChange="this.form.submit();). В радиокнопке изначально не выставлять checked, а как только юзер щелкнет по радиокнопке (OnChange), отловить событие и послать form.submit()

С уважением.

(Отредактировано автором: 28 Октября, 2010 - 23:08:05)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB