leshikgo
@leshikgo

Как реализовать фильтрацию данных через Ajax?

Здравствуйте. Помогите разобраться с вопросом. Нужно на сайте произвести фильтрацию данных по нескольким критериям, с этим всё ок, собрал данные отправил на сервер, на сервере сделал выборку->получил на клиенте. Теперь столкнулся с проблемкой, а точнее начал изобретать велосипед ибо не знаю истину. Нужно что бы после релоуда страницы выбранные критерии оставались на месте. Я так понимаю делается это через url параметры методом GET, но как быть с ajax, допустим вешаю на сабмит формы обработчик, что бы не происходил релоуд e.preventDefault(); но тогда не генерируется ссылка, начал лепить велосипед типа при обработчике в js генерировать этот url
history.pushState('', 'New Page Title', '/filter?' + $(this).serialize());
Но что-то мне кажется что я чего-то не знаю, подскажите как делаются более правильно данные фичи. Благодарствую заранее.
  • Вопрос задан
  • 870 просмотров
Решения вопроса 1
Shutik
@Shutik
Погромист халявщик
Как вариант можно запихать параметры фильтра в hash урл страницы.
1) выбрали параметры фильтра
2) сформировали строку вида: key1=val&key2=val&key3=val
3) запихали ее в hash: window.location.hash= "key1=val&key2=val&key3=val"
4) отправили ajax запрос
5) обновили страницу
6) прочитали hash и т.д.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Palehin
@Palehin
Frontend
Записывать в сессию значения фильтра и обновлять их на клиенте после перезагрузки страницы.
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Думаю в Вашем случае лучше всего подойдет запись в куки
гуглите document.cookie либо можете воспользоваться моим модулем для работы с куками
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы