Обработчик для выпадающих списков. Подключить
Добрый день. Еще про выборку тегов: вот есть выпадающие списки в которых прописаны теги и нужно чтоб поиск суммировался по этим трем выбранным тегам.
Есть такой код, но чуть-чуть не работает: <form action="" method="get" name="vyborka"> Ширина профиля <select size="1" id="shirina"> <option value="0" selected> </option> <option value="145">145</option> <option value="155">155</option> <option value="165">165</option> </select> Высота профиля <select size="1" id="vysota"> <option value="0" selected> </option> <option value="40">40</option> <option value="45">45</option> </select> Диаметр <select size="1" id="diametr"> <option value="0" selected> </option> <option value="R12">12</option> <option value="R13">13</option> <option value="R14">14</option> </select> <button id="knopka1">Подобрать</button> </form> <script> knopka1.onclick = function () { var flag=0; var shirina=''; if (document.getElementById('shirina').value!='0') { shirina = document.getElementById('shirina').value; flag=1; } else {shirina='';} var vysota=''; if (document.getElementById('vysota').value!='0') { if (flag!=0) { vysota='+'; } vysota += document.getElementById('vysota').value; flag=1; } else {vysota='';} var diametr=''; if (document.getElementById('diametr').value!='0') { if (flag!=0) { diametr='+';} diametr += document.getElementById('diametr').value; } else {diametr='';} top.location.href='#/?tag='+shirina+vysota+diametr; } </script> Этот код выдает в командной строке: сайт.ru/stranitsa?#/?tag=тэг1+тэг2+тэг3 то есть, не хочет писать как надо: сайт.ru/?tag=тэг1+тэг2+тэг3 Пробовал добавлять "window" перед top, знак + вместо "=", index.php и еще кучу вариантов... пробовал в action= писать "vyborka.php" и в него переносить код джавы - вообще пустую страницу выдает. Подскажите, плиз, как добиться такой выдачи: сайт.ru/?tag=тэг1+тэг2+тэг3 так, чтоб это получалось с любого уровня вложенности, ну и с главной тоже. С главной сейчас выдает так: сайт.ru/?#/?tag=215+55+R14 |
Влади_мир,
попробуйте помедитировать над стройкой 54 прочитав http://javascript.ru/window-location |
Влади_мир, строка 54
window.location = "http://сайт.ru?tag="+shirina+vysota+diametr |
Ну и бредятина. Руки бы поотрубал :) Кнопка по дефолту отправит форму на сервер и браузер автоматически сформирует GET-запрос. Нужно только прописать атрибуты name для контролов.
|
Цитата:
Цитата:
Я честно убил час медитируя над справочником. по моей логике пытался использовать hostname вместо href. Сдаваться пока не собирался... но обновил форум и увидел Вашу вторую подсказку. Этот вариант 54-й строки не работает. Не помог слеш перед ?, замена двойных кавычек на одинарные, ну и конечно точка с запятой в конце. Продолжаю медитацию |
Цитата:
Если в отдельном файле писать скрипт это проще? Я просто писал так: (не помогло) <script> function () { var flag=0; var shirina=''; if (document.getElementById('shirina').value!='0') { shirina = document.getElementById('shirina').value; flag=1; } else {shirina='';} var vysota=''; if (document.getElementById('vysota').value!='0') { if (flag!=0) { vysota='+'; } vysota += document.getElementById('vysota').value; flag=1; } else {vysota='';} var diametr=''; if (document.getElementById('diametr').value!='0') { if (flag!=0) { diametr='+';} diametr += document.getElementById('diametr').value; } else {diametr='';} window.location = 'http://сайт.ru?tag='+shirina+vysota+diametr; (тут был старый код) } </script> В смысле - если id заменить на name - то заработает чтоли? |
Зачем тут вообще javascript используется? Если назначить name, то сформируется удобный понятный GET-запрос вида:
?shirina=150&vysota=20&diametr=45 Минус 30 строк кода, плюс noscript юзеры, плюс к масштабируемости (добавить новое поле - не вопрос. Переименовать поле - не вопрос. и тд.) ... <select size="1"> - а зачем вы пишете атрибут size="1" ? |
Цитата:
Может подскажите как php сделать? Ну в смысле как сделать запрос POST чтоб он отправил инфу на почту я видел. А вот GET не нашел. То есть не нашел примера на php, чтоб подогнать под себя |
Цитата:
size=1 писать бесполезно насколько я знаю (хотя значение size по умолчанию равно нулю, но на вид тоже самое) |
Цитата:
|
Часовой пояс GMT +3, время: 09:35. |