Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сохранение выбора в select (https://javascript.ru/forum/misc/58840-sokhranenie-vybora-v-select.html)

steepfox 13.10.2015 18:53

Сохранение выбора в select
 
Приветствую. Есть такой код:

<select name="sel" onchange="document.location=this.value">

<option value="{$obj_doska->base_url_page.$add_param_url_2}">Обычная сортировка</option>

 
<option  value="{$obj_doska->base_url_page}?{$add_param_url_1}sort=date&tsort=desc" {$obj_doska->name_sort == "date" && $obj_doska->type_sort == "desc" ? $on_class : ""}">Новые</option>

<option value="{$obj_doska->base_url_page}?{$add_param_url_1}sort=date&tsort=asc" {$obj_doska->name_sort == "date" && $obj_doska->type_sort == "asc" ? $on_class : ""}">Старые</option>

<option value="{$obj_doska->base_url_page}?{$add_param_url_1}sort=cost&tsort=desc" {$obj_doska->name_sort == "cost" && $obj_doska->type_sort == "desc" ? $on_class : ""}">Дороже</option>


<option value="{$obj_doska->base_url_page}?{$add_param_url_1}sort=cost&tsort=asc" {$obj_doska->name_sort == "cost" && $obj_doska->type_sort == "asc" ? $on_class : ""}">Дешевле</option>

</select>


Как можно сделать сохранение выбора option при обновлении страницы? На данный момент, при нажатии на один из пунктов, происходит фильтрация, но значение не сохраняется.

php не предлагать)

laimas 13.10.2015 19:04

Цитата:

Сообщение от steepfox
php не предлагать

А что лень на сервере проверить и отметить выбранную опцию?

steepfox 13.10.2015 19:06

Весь код расположен в html файле.

рони 13.10.2015 19:16

steepfox,
onchange ->сохранить this.value в localStorage
при загрузке проверить - если есть установить

laimas 13.10.2015 19:16

И что? Это {$obj_doska->base_url_page}?{$add_param_url_1}sort=cost&tsort= desc и другие чье произведение, сервера или клиента? Да и вообще это слишком так определять сортировку.

steepfox 13.10.2015 19:17

Можно как-то на моем примере это реализовать? laimas подтвердит, что я в этом деле бум бум )

steepfox 13.10.2015 19:19

laimas, я понимаю, что данная сортировка это бред, но выбирать не приходится. Как можно в моем случаи реализовать это?

laimas 13.10.2015 19:25

Вот у вас в коде {$obj_doska->name_sort == "cost" && $obj_doska->type_sort == "desc" ? $on_class : ""} - и это проверка сервером условия (тернарный оператор), что нельзя также серверу проверить какие ключи пришли и соответственно выбрать опцию?

У вас четыре комбинации из двух ключей, первая опция должна быть выбрана, если:

$_GET['sort']=='date' && $_GET['tsort']=='desc' ? 'selected' : null


для остальных свои комбинации. И этот оператор проблематично вставить в тело опций?

PS. Сортировка по возрастанию (ASC) она по умолчанию, гонять это значение туда сюда нет смысла.

steepfox 13.10.2015 19:34

Как я понял, нужно данный код прописать куда-то сюда?

<option  value="{$obj_doska->base_url_page}?{$add_param_url_1}sort=date&tsort=desc" {$obj_doska->name_sort == "date" && $obj_doska->type_sort == "desc" ? $on_class : ""}">Новые</option>

laimas 13.10.2015 19:40

<option  value="{$obj_doska->base_url_page}?{$add_param_url_1}sort=date&tsort=desc" {$obj_doska->name_sort == "date" && $obj_doska->type_sort == "desc" ? $on_class : ""}" {$_GET['sort']=='date' && $_GET['tsort']=='desc' ? 'selected' : null}>Новые</option>


Надо полагать, что ключи сортировки $_GET['sort'] и $_GET['tsort'] до вывода этого списка обрабатываются и возможно присваиваются неким переменным, поэтому вместо $_GET['sort'] и $_GET['tsort'] в операторе можно использовать их.


Часовой пояс GMT +3, время: 23:26.