Сохранять значение select
Есть выпадающий список:
<select onchange="window.location=this.value"> <option>выберите поле</option> <option value="/test1">1</option> <option value="/test2">2</option> <option value="/test3">3</option> </select> Подскажите как сохранять определенные значение выбранного поля, при переходе на страницу /test1, или /test2, или /test3 Т.е выбираю скажем 1, выполняю переход на страницу: site.ru/test1 И там уже у меня сразу в списке стоит selected поле 1: <option selected="selected" value="/test1">1</option> |
Как вариант можно использовать куки, я так думаю
|
передать с хешем или параметром
|
А можно пример, или где можно про это почитать
|
с хешем примерно так
<body onload="sel.selectedIndex = location.hash.replace('#', '')">
<select id="sel" onchange="window.location=this.value + '#' + this.selectedIndex">
с параметром чуть по-другому ?my_param=my_value см. location PS: и в ненавязчивом стиле |
А можно повесить onload не на body, а скажем на div.
Вот так:
<div onload="sel.selectedIndex = location.hash.replace('#', '')">
<select id="sel" onchange="window.location=this.value + '#' + this.selectedIndex">
<option>выберите поле</option>
<option value="/test1">1</option>
<option value="/test2">2</option>
<option value="/test3">3</option>
</select>
</div>
|
Цитата:
зачем тебе это? |
да я хочу сделать сортировку выпадающим списком и что бы выбранный тип сортировки сохранялся.
Выбрал сортировать от дешевых к дорогим было активно от деешвых к дорогим. выбрал другой тип и его сохраняло |
и причём тут вешать событие загрузки документа (или картинки и некоторых других) на div
|
не разобрался я что то.
Не понял как сохранять выбранное значение при переходе по ссылке выбранного селекта. |
http://javascript.ru/window-location
я добавил в hash позицию (номер) выбранного пункта, при загрузке взял из этого хеша этот номер и использовал его для установки списка в эту позицию |
Сделал как Вы писали:
<select id="sel" onchange="window.location=this.value + '#' + this.selectedIndex"> <option value="/test1">1</option> <option value="/test2">2</option> <option value="/test3">3</option> </select> Теперь в конце добавляет #1 или #2 или #3 А как теперь в зависимости от #1 или #2 или #3 выбирать активный селект? Если выбрал селект 3, что бы при переходе на страницу активным был <option selected="selected" value="/test3">3</option> |
я сделал это в onload
|
Все теперь понял.
Только получается специфика сайта что на body не могу повесить. А можно повесить на другой элемент? |
В ie не работает этот вариант
|
не сохраняет значение
|
Зачем вообще тут мучить js??? Если сервер и так знает на какую страницу перешел и с какими параметрами и уже там просто помечать нужный параметр.
|
Цитата:
Итак, начнем с конца и увидим начало :) 1. test1 получая какую то информацию выставляет нужный селект 2. Что бы он смог это сделать ему нужно сообщить, какой селект выставить ( сообщить можно, например, через командную строку или через куку) 3. и ты ды... А теперь провокационный вопрос. Зачем пользователю этот селект на второй странице, если он уже сделал свой выбор? Правильнее будет, просто вывести ему значение, которое он уже выбрал. |
Цитата:
<p>change me</p> <select onchange="this.selectedIndex = 2"> <option>0</option> <option>1</option> <option selected>2</option> <option>3</option> <option>4</option> </select> <select onchange="this.options[3].selected = true"> <option>0</option> <option>1</option> <option>2</option> <option selected>3</option> <option>4</option> </select> Цитата:
лично мне по душе подтягивать всё ajax-запросами, про то как это индексируется информация есть UPD: пару полезных ссылок https://developer.mozilla.org/en-US/...LOptionElement https://developer.mozilla.org/en-US/...LSelectElement |
Можно запоминать в localStorage.
<script>
//отладка
document.write("Для справки: "+(localStorage.seltag==undefined?"Вы здесь впервые":"Ранее Вы выбрали опцию "+localStorage.seltag));
</script><br>
<select id="seltag" onchange="localStorage.seltag=this.selectedIndex">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<script>
//восстанавливаем запомненное значение, если есть
if(localStorage.seltag!==undefined) seltag.selectedIndex = localStorage.seltag;
</script>
Если нужно запомнить только для текущей сессии, то соответственно sessionStorage вместо localStorage |
Цитата:
|
| Часовой пояс GMT +3, время: 10:34. |