Обработчик для выпадающих списков. Подключить
Добрый день. Еще про выборку тегов: вот есть выпадающие списки в которых прописаны теги и нужно чтоб поиск суммировался по этим трем выбранным тегам.
Есть такой код, но чуть-чуть не работает:
<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, время: 15:50. |