[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Реализация фильтров
Snnick
Всем привет. Столкнулся с новой интересной задачей, реализовать фильтры в интернет магазине. В целом задача не сложная но хотелось бы все сделать правильно и с умом.
Есть некие требования:
1. Это данные по фильтрам должны подгружаться Ajax и вставляться в средний блок страницы, остальные блоки не перегружаются..
2. Должна ссылка GET генерироваться в зависимости от выбора фильтра и подставляться туда параметры без перезагрузки страницы. Чтоб потом можно было кому то эту ссылку скинуть с уже заполненными фильтрами.

Моя реализация:
1. При выборе фильтров пользователем стоит функция js на событие онклик или ончендж.
2. В функции считываю ссылку GET с параметрами.
3. При Выборе пользователем какого либо фильтра считываю значение параметра фильтра и подставляю в строку с GET с помощью history.pushstate. Само собой при выборе разных фильтров пользователем я постоянно перебираю строку GET в которую запихиваю или удаляю значения фильтров. Перебираю в цикле For в js с помощью регулярок.
4. Нужные параметры отдаю Ajax в контроллер, валидирую и с контроллера подгружаю все в центральний блок странички.

Вопрос на сколько эта логика хороша или возможны получше варианты?
Kusss
Вы не ищите легких путей.

При выборе данных - делаешь serialize формы. Отправляешь на сервер.
На сервере подготавливаешь данные выборки и ссылку. Возвращаешь json клиенту. Выводишь данные, меняешь адресную строку.
Snnick
Цитата (Kusss @ 13.04.2017 - 17:46)
Вы не ищите легких путей.

При выборе данных - делаешь serialize формы. Отправляешь на сервер.
На сервере подготавливаешь данные выборки и ссылку. Возвращаешь json клиенту. Выводишь данные, меняешь адресную строку.

То есть при выборе каждого параметра мне отправлять на сервер данные и всю логику, которая сейчас делается в js сделать на сервере?
Kusss
Ты ведь все равно выдаешь результат поиска. (я исклачаю условие, что у тебя выводиться ВСЕ, и открывается нужное). Добавить url в выдачу, не должно составить труда.
И логика у тебя уже должна быть, если поиск работал без аякса. Поменяешь на сервере - и нужно будет не забыть сделать на стороне клиента.
Snnick
Цитата (Kusss @ 13.04.2017 - 21:22)
Ты ведь все равно выдаешь результат поиска. (я исклачаю условие, что у тебя выводиться ВСЕ, и открывается нужное). Добавить url в выдачу, не должно составить труда.
И логика у тебя уже должна быть, если поиск работал без аякса. Поменяешь на сервере - и нужно будет не забыть сделать на стороне клиента.

Да, но в таком случае мне нужно делать второй Экшен, который будет отрабатывать для Ajax и возвращать json, верно? Потому как Экшен который у меня отрабатывает сейчас он подключает Вьюху страницы в целом.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.