Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.10.2013, 14:23
Новичок на форуме
Отправить личное сообщение для Влади_мир Посмотреть профиль Найти все сообщения от Влади_мир
 
Регистрация: 01.10.2013
Сообщений: 8

Обработчик для выпадающих списков. Подключить
Добрый день. Еще про выборку тегов: вот есть выпадающие списки в которых прописаны теги и нужно чтоб поиск суммировался по этим трем выбранным тегам.
Есть такой код, но чуть-чуть не работает:
<form action="" method="get" name="vyborka">

    Ширина профиля
  <select size="1" id="shirina">
    <option value="0" selected>&nbsp;</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>&nbsp;</option>
    <option value="40">40</option>
    <option value="45">45</option>
  </select>
 
    Диаметр
  <select size="1" id="diametr">
    <option value="0"  selected>&nbsp;</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
Ответить с цитированием
  #2 (permalink)  
Старый 02.10.2013, 14:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Влади_мир,
попробуйте помедитировать над стройкой 54 прочитав http://javascript.ru/window-location
Ответить с цитированием
  #3 (permalink)  
Старый 02.10.2013, 18:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Влади_мир, строка 54
window.location = "http://сайт.ru?tag="+shirina+vysota+diametr
Ответить с цитированием
  #4 (permalink)  
Старый 02.10.2013, 19:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну и бредятина. Руки бы поотрубал Кнопка по дефолту отправит форму на сервер и браузер автоматически сформирует GET-запрос. Нужно только прописать атрибуты name для контролов.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 02.10.2013, 19:18
Новичок на форуме
Отправить личное сообщение для Влади_мир Посмотреть профиль Найти все сообщения от Влади_мир
 
Регистрация: 01.10.2013
Сообщений: 8

Сообщение от рони Посмотреть сообщение
Влади_мир,
попробуйте помедитировать над стройкой 54 прочитав http://javascript.ru/window-location
Сообщение от рони Посмотреть сообщение
Влади_мир, строка 54
window.location = "http://сайт.ru?tag="+shirina+vysota+diametr
РОНИ, спасибо, но что то не работает(.
Я честно убил час медитируя над справочником. по моей логике пытался использовать hostname вместо href. Сдаваться пока не собирался... но обновил форум и увидел Вашу вторую подсказку. Этот вариант 54-й строки не работает. Не помог слеш перед ?, замена двойных кавычек на одинарные, ну и конечно точка с запятой в конце. Продолжаю медитацию
Ответить с цитированием
  #6 (permalink)  
Старый 02.10.2013, 19:23
Новичок на форуме
Отправить личное сообщение для Влади_мир Посмотреть профиль Найти все сообщения от Влади_мир
 
Регистрация: 01.10.2013
Сообщений: 8

Сообщение от danik.js Посмотреть сообщение
Ну и бредятина. Руки бы поотрубал Кнопка по дефолту отправит форму на сервер и браузер автоматически сформирует GET-запрос. Нужно только прописать атрибуты name для контролов.
danik.js, это вы про action="файл обработчик" говорите? там id прописаны вместо name.
Если в отдельном файле писать скрипт это проще? Я просто писал так: (не помогло)
<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 - то заработает чтоли?

Последний раз редактировалось Влади_мир, 02.10.2013 в 19:32.
Ответить с цитированием
  #7 (permalink)  
Старый 02.10.2013, 19:34
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Зачем тут вообще javascript используется? Если назначить name, то сформируется удобный понятный GET-запрос вида:
?shirina=150&vysota=20&diametr=45
Минус 30 строк кода, плюс noscript юзеры, плюс к масштабируемости (добавить новое поле - не вопрос. Переименовать поле - не вопрос. и тд.)

... <select size="1"> - а зачем вы пишете атрибут size="1" ?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 02.10.2013, 19:46
Новичок на форуме
Отправить личное сообщение для Влади_мир Посмотреть профиль Найти все сообщения от Влади_мир
 
Регистрация: 01.10.2013
Сообщений: 8

Сообщение от danik.js Посмотреть сообщение
Зачем тут вообще javascript используется? Если назначить name, то сформируется удобный понятный GET-запрос вида:
?shirina=150&vysota=20&diametr=45
Минус 30 строк кода, плюс noscript юзеры, плюс к масштабируемости (добавить новое поле - не вопрос. Переименовать поле - не вопрос. и тд.)

... <select size="1"> - а зачем вы пишете атрибут size="1" ?
size="1" - выпадающий список с видимой частью в 1 строку. Мне такой нужен. К сожалению, джаваскрипт - не мой, я сам знаю только немного html и css. Как этот "GET" реализовать не знаю. Готового кода чтоб сделать файл-обработчик не нашел на php... Нашел вот двава-скрипт и сним и маюсь)
Может подскажите как php сделать?

Ну в смысле как сделать запрос POST чтоб он отправил инфу на почту я видел. А вот GET не нашел. То есть не нашел примера на php, чтоб подогнать под себя

Последний раз редактировалось Влади_мир, 02.10.2013 в 19:51.
Ответить с цитированием
  #9 (permalink)  
Старый 02.10.2013, 19:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Влади_мир
Может подскажите как php сделать?
А как сейчас выглядит код обработчика?
size=1 писать бесполезно насколько я знаю (хотя значение size по умолчанию равно нулю, но на вид тоже самое)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 02.10.2013, 20:05
Новичок на форуме
Отправить личное сообщение для Влади_мир Посмотреть профиль Найти все сообщения от Влади_мир
 
Регистрация: 01.10.2013
Сообщений: 8

Сообщение от danik.js Посмотреть сообщение
А как сейчас выглядит код обработчика?
Это долго мне( два дня назад ковырялся, сейчас быстро не найду - не сохранил т.к. ничего путного не было
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Нужен тулкит для сортировки списков cj_spotty Элементы интерфейса 7 31.07.2009 09:27
обработчик собития onMouseOver для фрейма Rian Events/DOM/Window 7 06.06.2008 19:48