Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
поисковый запрос + пагинация + сессии http://forum.kohanaframework.su/viewtopic.php?f=2&t=833 |
Страница 1 из 1 |
Автор: | prickle [ 22 май 2014, 13:06 ] |
Заголовок сообщения: | поисковый запрос + пагинация + сессии |
Всем приветы !!! Периодически занимаюсь саморазвитием. Когда-то давно назрел вопрос постраничной навигации результатов поиска. Совсем недавно уложила в голове работу с сессиями, но до конца осознать и прикрутить к выводу результатов поиска не получается. Как сделать, так чтобы не терялся результат поиска ещё и пагинация продолжала корректно работать? Понятно, что полученные переменные от запроса и пагинации надо засунуть в сессии. Вопрос - как? только, чур, не смеяться))) тяжко мне даётся это, ох тяжко... Код:
естественно все работает неправильно, как только я перехожу на n-страницу, то мне вылетает пойманная ошибка Session::instance()->set('error', 'Ничего не введено в поле поиска'), работает только роут формируя ссылку "rbt/getin/search/1/2" Спасибо за ваше терпение |
Автор: | rain2 [ 25 май 2014, 20:09 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
я не совсем пойму задачу, зачем писать результаты поиска в сессию? Но если нужно то может так Код:
|
Автор: | prickle [ 28 май 2014, 11:58 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
в сессию, чтобы результат поиска разбить на страницы. Если делать стандартную пагинацию для вывода результатов поиска то - результаты формируются, всё, что попадает на первую сформированную страницу, выводится нормально, но как только перехожу на следующую (вторую, пятую, последнюю - не важно) - все результаты поиска и пагинация сбрасываются (работает только роут) а на странице выводится ошибка о том, что ничего не введено в поле поиск. спасиб за подсказку. буду пробовать. о результатах отпишусь |
Автор: | prickle [ 28 май 2014, 14:27 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
забавно работает ХD когда я перехожу на другую страницу - результат теряется, НО если я тутже ввожу в поле поиска тотже самый параметр для поиска, то результат поиска выводится и на отображается на той странице, на которую я пыталась до этого перейти. Т.е. если я после первого ввода в поле поиск вводила "телевизор" вводится результаты по этому запросу, перехожу на страницу, допустим, 5, тона страницу выводится ошибка о том, что я ничего не ввела в поле поиска, роут сохраняется, я тут же ввожу в поле поиска "телевизор" - формируется результат с пагинацией на той самой 5й странице. Значит он "помнит", пагинацию, но результат поиска сбрасывается. И ещё один момент: если я ввожу, другие параметры в поле поиск отличные от предыдущих, то поиск не работает и выводится ошибка о том, что ничего не введено в поле поиск, повторно ввожу предыдущий текст запроса в поле поиска - срабатывает с выше описанными нюансами. Ну это понятно, надо очищать сессию. Хммм.... Я когда начала заниматься решение этого вопроса, смотрела как это делают нормальные люди. А там вообще все просто. Достаточно начать сессию session_start(); в начале файла как-то ещё через метод GET делают люди, но раз уж взялась за сессии, значит надо их сначала понять |
Автор: | Rush64 [ 30 май 2014, 15:47 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
что бы разбить результат на несколько страниц тебе достаточно знать номер текущей страницы и поисковый запрос. результат формируется исходя из этих данных: берем номер страницы, считаем offset/limit, получаем данные. если уж решила юзать сессии - то в сессии достаточно хранить поисковый запрос, номер страницы в роуте $page нужно передавать в шаблон, т.к. это кусок хтмла, $all тоже нет смысла хранить в сессии. для получения общего количества и лимитированной выборки можно использовать один запрос (см ORM reset(false)) |
Автор: | Rush64 [ 30 май 2014, 15:48 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
вот пример для reset http://blogocms.ru/2012/11/kohana-orm-c ... esetfalse/ |
Автор: | prickle [ 02 июн 2014, 16:16 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
reset(false) классная штука! Ну а для query builder чего-то подобного видимо нет( ? |
Автор: | Rush64 [ 03 июн 2014, 19:26 ] |
Заголовок сообщения: | Re: поисковый запрос + пагинация + сессии |
для query builder'а нет, там все сложнее. но в одном запросе можно и так получить |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |