Здравствуйте, комрады выручайте. Почти не знаю Яву скрипт, использовал в дримвивере прыгающее меню для того чтобы сразу после выбора из списка перепрыгнуть в нужное место через GET запрос. Вот скрипт 1.php: HTML: <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Документ Без Имени</title> <script type="text/JavaScript"> <!-- function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } //--> </script> </head> <body> PHP: <?php if (isset($_POST['kuda'])) {print "Курит?".$_POST['kuda'];}?> <?php if (isset($_POST['kuda'])) {print "Возраст?".$_POST['kuda'];}?> HTML: <form name="sd" method="get" action="1.php"> Вы курите? <input name="smok" type="radio" value="Да" checked="checked">Да <input name="smok" type="radio" value="Нет">Нет <select name="menu1" onChange="MM_jumpMenu('parent',this,0)"> <option value="1.php?T=1">Вам до 30 лет</option> <option value="1.php?T=2">Вам от 30 лет до 60</option> <option value="1.php?T=3">Вам больше 60 лет </option> </form> </body> В итоге на экране не работает радиокнопка, отвечающая за курите или нет. По умолчанию стоит "Да", при выборе возраста мы переходим по ссылке 1.php?T=1..3 и видем в адресной строке успешно: http://localhost/ismok/1.php?T=2 но не в окне браузера, не в адресной строке нет переменной smok!!! Как ее можно передать при помощи ИМЕННО такого меню, без кнопки отправить....именно прыгая по GET параметру??? Возможно надо как то ее соединить с описанием Java Scripts, что стоит в заголовках, но как??? Помогите.
тут два варинта. я бы начал со следующего: HTML: <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Документ Без Имени</title> </head> <body><form id="sd_form" name="sd" method="get" action="1.php"> Вы курите? <input name="smok" type="radio" value="Да" checked="checked">Да <input name="smok" type="radio" value="Нет">Нет <select name="menu1" onChange="this.form.submit();"> <option value="1">Вам до 30 лет</option> <option value="2">Вам от 30 лет до 60</option> <option value="3">Вам больше 60 лет </option> </form> </body> затем в 1.php лови в массиве $_GET значения smok и menu1 $_GET['smok'], $_GET['menu1']
Вместо кнопок используй ссылки, их тоже можно декорировать как кнопки. ответы можно хранить в $_SESSION - и дело с концом.
вообще, надо сказать, нелогичное поведение формы ты задумал, с точки зрения юзабилити. если человек захочет сначала выбрать возраст, то выбрать курит или нет ему уже не судьба будет, так как сработает сабмит. правильнее выкинуть вообще onChange из select и добавить кнопку сабмита: <input type='sumbit' value= 'Учесть мой голос'/>
если надо чтобы было по одному вопросу на странице - это так-то. если надо чтобы было по несколько вопросов на страницу, но без кнопки "отправить" - можно. Но не нужно. Вдруг человек тыкнул не туда, и хочет перетыкнуть, а форма уже ушла. Это не красиво. Делай с кнопкой и не парься.
engager Спасибо, огромное!!! Все заработало, по поводу вашего замечания по нелогичности, это просто здесь так кажется...на самом деле там технические термины...я для простоты так написал. Хотел спросить, а это не опасно?...с точки зрения безопасности скрипта, его взлома???? ну ваш вариант...там в GET запросе в адресной строке...куча процентов и вопросов откуда они взялись?...
igordata Вместо радиокнопок ссылки?????? А куда они будут вести? При нажатии ведь будет сразу же перенаправление на страницу, а мне нужно 2 выбора сделать Курит ли человек и его возраст?
смотря, что ты дальше собираешься с этим делать. если подставлять эти значения в sql-запросы, то есть риск sql-инъекции. проценты - неопасно. это так называемая url-кодировка. Если не хочешь, чтоб они были в адресной строке, используй пост-запрос. action='post' вместо action='get' и $_POST вместо $_GET соответственно
A.B.C. если два то никак уже кроме как либо через js мониторить заполненность обязательных полей по клику на любом из них. Или кнопка. Больше вариантов нету. Выбирай какой больше нра
A.B.C. да, можешь выкинуть. сначала хотел использовать твою function MM_jumpMenu(targ,selObj,restore){ и в ней вызвать сабмит формы: document.getElemenById('sd_form').submit(); но решил это запихать сразу в onChange="this.form.submit();"
igordata engager В том то и дело блин, я хотел вставить туда ID в форму[css] #smok select {height: auto; width: 200px;}[/css] чтоб сетекты были одинакового размера а вот сейчас вставил уже в большой скрипт почему то не робит...сижу вот разбираюсь (
engager Из за чего такое может быть в адресной строке? : http://localhost/smok/index.php?kuda=1& ... u1=&menu1= хотя парметры передает верно