1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Сортировка товара методом GET не работает в связке с паджинацией20.08.2018, 15:40. Показов 2337. Ответов 11
Метки нет (Все метки)
Добрый день, такая задача стоит:
Сделать сортировку товара (или POST методом, с последующей записью переменных в сессию, или GET методом, но чтобы конфликта не возникало) На данный момент сделана паджинация вот таким способом, т.е. навигация по страницам идёт через GET запрос:
Всё конечно работает, но не так как нужно: Возьмём к примеру, что у меня 100 товаров и я вывожу по 20 товаров на странице, на первой странице никаких запросов в адресной строке нет и я могу спокойно сортировать товары (на первой странице), но при попытке сортировки на любой другой странице (где в адресной строке уже указан один GET запрос, например ?page=2) ничего не сортируется (т.е. get по сортировке сбрасывается и сортировка не сохраняется на других страницах. Что делать? Победить никак не могу, пробовал в сессию записывать: записывается только то что отправилось на текущей странице, на другую не переносится (имеется в виду при паджинации), пробовал методом POST сделать, так вообще ничего не работает, не знаю уже как быть. Меня этот конфликт уже замучал, подскажите что-нибудь пожалуйста...
0
|
20.08.2018, 15:40 | |
Ответы с готовыми решениями:
11
Сортировка пользовательского списка по цене товара методом пузырька StringGrid: сортировка методом включения по артикулу и по названию товара Не работает случайная сортировка товара 1с-битрикс Сортировка методом Шелла не работает |
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
|
|
20.08.2018, 15:52 | 2 |
Если применена одна из сортировок,
то вам нужно дописывать её условие, в каждую ссылку пейджера.
0
|
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
|
|
20.08.2018, 15:57 [ТС] | 3 |
Это я понимаю, а как это сделать не знаю(
0
|
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
|
||||||
20.08.2018, 16:03 | 4 | |||||
Сообщение было отмечено TheArs как решение
Решение
примерно так:
получилось следующее: если в Get приходит условие о сортировке, то мы в переменную $page_query сохраняем часть запроса, соответствующую указанному способу сортировки. Далее, при построении пейджера, добавляем эту часть в ссылки. В результате, при вызове каждой страницы, сортировка будет указываться автоматически.
1
|
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
|
||||||
20.08.2018, 16:10 [ТС] | 5 | |||||
Всё верно, оно работает, но в этом случае у меня другая проблема возникает, когда я нахожусь уже на второй странице, то при нажатии на другую сортировку, меня сбрасывает на самую первую страницу.
Т.е. например я поставил сортировку "Сначала дешёвые", листал страницы, дошёл до 10-ой и решил сортировку поменять, а меня снова на первую перекидывает. Я вот не знаю это всё-таки большая проблема или нет. Вы как думаете? Стоит ли и это тоже как-то исправлять или это по факту везде так? _______ P.S. В любом случае уже спасибо за помощь! Кстати, пришлось оставить так:
0
|
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
|
|
20.08.2018, 16:11 | 6 |
0
|
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
|
||||||
20.08.2018, 16:13 [ТС] | 7 | |||||
0
|
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
|
|||||||||||
20.08.2018, 16:25 | 8 | ||||||||||
у вас в первичной сортировке указано отправлять на первую страницу,
то есть страница совсем не указана. Если вы там укажите страницу, вы останетесь на ней же по счёту но данные будут с другого конца извлекаться. Добавлено через 1 минуту по идее, если пользователь поменял сортировку, то логично, что нужно начинать просмотр сначала. Тут уже на ваше усмотрение, как задумаете. Добавлено через 1 минуту добавьте в код, формирующий первичную сортировку, условие с номером страницы, которое добавили в пейджер Добавлено через 3 минуты примерно так:
возможно версия php старая и оператор ?? в ней не работает Добавлено через 44 секунды он по моему только с седьмой версии работает а в 5,6 или 5,4 нет Добавлено через 1 минуту тогда можно по старинке инициализировать:
1
|
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
|
||||||
20.08.2018, 16:27 [ТС] | 9 | |||||
Сейчас посидел, подумал и пришёл к выводу, что на самом деле будет очень странно оставлять пользователя на той же странице, правильнее будет как раз таки на начало его возвращать, всё верно.
Спасибо большое за помощь, ещё раз! Да, точно у меня же версия 5.6 стоит. Запись в сессию также делал
0
|
101 / 94 / 38
Регистрация: 30.09.2009
Сообщений: 442
|
|
20.08.2018, 16:27 | 10 |
иначе есть риск, что при отсутствии sorting в $_GET,
будет выскакивать нотис или варнинг.
1
|
363 / 305 / 73
Регистрация: 15.09.2017
Сообщений: 1,403
|
|
20.08.2018, 16:35 | 11 |
Можно попробовать сортировку в путь перенести. Хотя, о каких конфликтах идет речь, я не понял. Естественно, "ничего не сортируется". Вы же не указали параметр для сортировки. Нужно указывать оба параметра, чтобы сортировка наследовалась, пока на какой-нибудь из страниц обратно не будет выбрана сортировка по умолчанию.
0
|
363 / 305 / 73
Регистрация: 15.09.2017
Сообщений: 1,403
|
|
21.08.2018, 09:12 | 12 |
Уточнение к предыдущему сообщению. Это было сообщение, перенесенное модератором из другой темы, в которой перед моим ответом кроме стартового сообщения ничего не было.
0
|
21.08.2018, 09:12 | |
21.08.2018, 09:12 | |
Помогаю со студенческими работами здесь
12
Не работает сортировка методом выбора Не работает сортировка методом выбора Не работает сортировка методом вставок Не работает сортировка методом выбора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |