Сохранить значение в поле при покидании страницы

rudiwork

Новичок
Привет..
Сегодня задача была, есть некое поле textarea куда можно ввести данные...
если юзер ввел данные в это поле и не нажал сохранить а вместо этого перешел на другую страницу , а потом после вернулся назад... то нужно что бы сохранились ввденные им данные...
Решил сделать на javascript событие focusOut - потеря фокуса, и при потере фокуса введенные данные через ajax сохнанять в $_SESSION, но вот беда... работает паралельно некая функция, которая так же работает с $_SESSION
и когда приходит время подтянуть данные из $_SESSION
в ней находятся не мои данные , а данные стороней не моей функции...
Можно ли как то заюзать $_SESSION что бы не пересекаться с $_SESSION иной функции ?
 

rudiwork

Новичок
Скажу подробнее... достался мне проект на Modx Evo
Там есть некий плагин для работы с корзиной, и этот плагин так же активно юзает $_SESSION
имено в $_SESSION он сохраняет положенные в корзину товары, и видать он где то в свой работе обнуляет весь $_SESSION
вот я и спросил... можно ли как то заюзать $_SESSION, при условии что мои данные не потрет стороний плагин... MODX меня порой выбешивает...
(Добавление)
может мне в помощь будет session_name или seesion_id ?
 

ksnk

прохожий
В куках хранить идентификатор корзины, сама корзина в удобном для работы виде лежит в специальной таблице. Так можно не заботится, что корзина пропадет у юзера через 10 минут, пока он сходил попить пива. Да и перепривязывать корзину к внезапнозалогинившемуся "постоянному покупателю" будет понятно как.
 

keltanas

marty cats
Храни в LocalStorage
Вот например корзина товара, которая хранит свое состояние в LocalStorage, а при нажатии Save или Load соответственно сохраняет или загружает данные с сервера.

Можно добавить в корзину товары, нажать F5 и ничего не пропадет.
 

ksnk

прохожий
keltanas Это если у юзера один комп, с которого он ходит и/или нет регистрации пользователей в магазине.
 

hell0w0rd

Продвинутый новичок
это не в сессиях нужно хранить, и не в куках тем более. А в базе у себя. Юзер хочет написать коммент - в первую очередь идет запрос в базу, нет ли неотправленных комментов. Мне казалось механизм черновиков именно так и работает?)
 

rudiwork

Новичок
Спасибо за ответы....
Разобрался в чем было дело...
При запуске скрипта корзины, разработчики запускали сессию так:
PHP:
    session_name($value);
    session_id($_COOKIE[session_name()]);
    session_start();
Моя сессия не затиралась, а просто хранилась отдельно, так как имя сессии другое...
Решение сделал так: получил имя их сесии, переменная $value и сделал инициализацию сесии как у разработчиков корзины...
и тогда смог дополнять $_SESSION своими данными =)
Но спасибо что сказали про LocalStorage
Про него ничего не знал... почитаю =)
 

Redjik

Джедай-мастер
keltanas Это если у юзера один комп, с которого он ходит и/или нет регистрации пользователей в магазине.
вот
ты не понял, keltanas имеет ввиду textarea - корзину так не стоит делать, ага...
а вот текст/черновик я бы даже до сервера не стал допускать - Local Storage идеален.
 
  • Like
Реакции: ksnk

hell0w0rd

Продвинутый новичок
Redjik
Мне кажется все зависит от типа ресурса:) Просто надо иметь ввиду что если у тебя вк и настенные записи - можно юзать LS, но если у тебя что-то типо хабра - стоит сохранять черновики в базе:)
 
Сверху