Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сохранить выбор в select (https://javascript.ru/forum/misc/54814-kak-sokhranit-vybor-v-select.html)

user_name 01.04.2015 21:23

Как сохранить выбор в select
 
Делаю профиль пользователя. есть три селекта для выбора дня рождения. день, месяц и год. После отправки на сервер дата сохраняется в БД. Как сделать что бы выборка этих селектов навсегда осталась на этой странице или пока пользователь не выберет другую дату?. То есть выборка всегда должна соответствовать дате из БД.

laimas 01.04.2015 21:36

Регистированным пользователя при выводе списка на стороне сервера это не сложно сделать, иначе или куки или локальное хранилище.

user_name 01.04.2015 21:57

Цитата:

Сообщение от laimas (Сообщение 364514)
Регистированным пользователя при выводе списка на стороне сервера это не сложно сделать, иначе или куки или локальное хранилище.

Нет куки и лх не подойдут. Профиль естественно для авторизованных пользователей. Подскажи те как сделать.

laimas 01.04.2015 22:36

А как вы делаете выборку и выводите списки?

user_name 01.04.2015 22:51

<select id="id_birthdate_month">
			<option value="01">Январь</option>
			<option value="02">Февраль</option>
                        #...
		</select>

При выборе всех списков/инпутов жму кнопку сохранить. Собираю все данные из списков и инпутов аяксом отправляю на сервер и сохраняю в БД. В инпуты в тег value подставляю переменную со значением из БД в результате всегда будет выводится нужно значение. Так же нужно сделать для списков. Что бы не сбивалось.

laimas 01.04.2015 23:01

Я не об этом. Собственно JS тут совсем не нужен, это запись значения, вот тут у вас работает JS отчасти. А выбрать нужные опции в списке, так зачем для этого нужен JS? Сервер их отдает, серверу и отметить нужно.

Я спрашивал о том, как вы делаете выборку в базе и как сервер формирует эти списки. У вас дата рождения храниться в базе, и надо полагать в поле типа DATE. Думаю знаете и как из даты средствами SQL можно получить день, месяц, год. А получив эти составляющие даты рождения пользователя, не сложно их сравнить со значениями формируемых списков, и указать опциям равным дате рождения пользователя selected.

Ну а новый выбор, так это значит запрос к базе и обновление или лучше INSERT c ON DUPLICATE KEY UPDATE.

user_name 01.04.2015 23:11

Цитата:

Сообщение от laimas (Сообщение 364535)
А получив эти составляющие даты рождения пользователя, не сложно их сравнить со значениями формируемых списков, и указать опциям равным дате рождения пользователя selected.

Для каждой опции делать проверку? Этих опций у меня очень много. Если было бы всего пара опций то да. А так у меня их около ста получается, с годами.

laimas 01.04.2015 23:15

А что у пользователя бывает сто дат рождения? :)
А если речь о 100 опциях и трудности, значит вы не верно делаете вывод списков. Покажите код, как вы это делаете, и выборку из базы.

user_name 01.04.2015 23:21

да, я о ста опциях. Дак я их в ручную написал.

user_name 01.04.2015 23:28

а что бы вы поняли как я делаю выборку мне придется еще скинуть большой класс для работы с БД. Я просто беру выбранное значение (через js по id например #id_select option:selected) и отправляю на сервер там просто обновляю поля в БД с этим значением.


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