Результаты поиска на странице элемента

Здравствуйте,

Есть некая база данных и обертка вокруг нее на Yii: форма поиска и список найденных элементов. Необходимо выводить список других найденных элементов в окне просмотра отдельного. Как это лучше реализовать?

Пока есть идея только писать в сессию критерии поиска и, соответственно, на странице элемента заново его выполнять и выводить список.

Еще есть идея список найденных элементов подгружать через ajax, тогда можно подгружать информацию по отдельному элементу не теряя критериев поиска.

Есть другие варианты?

1 ответов


Ну ок. Нашел время написать:
В базе недвижимости есть несколько типовых критериев, по которым люди ищут необходимые апартаменты.
Предлагаю комбинированный вариант поведения:
1. Во время открытия объекта без использования формы поиска - пытаться определить какие апартаменты могли бы заинтересовать клиента. Раздел: "Аналогичные предложения".
2. Запомнить, что искал клиент в сессии, а если есть авторизация - то в базе данных.
Сохранять в сессии в виде ассоциативного массива ключ поиска=>массив условий
Тогда вы сможете открывать все объекты в контексте текущего поиска.
Попробую объяснить:
1. Задаем условия от 100 м2, за городом. получаем список:


<ul>
<li><a href="view_item/1024.html?af894a">Вилла на берегу моря</a></li>
<li><a href="view_item/1324.html?af894a">Загородный дом</a></li>
<li><a href="view_item/6524.html?af894a">Двухуровневый лофт</a></li>
<li><a href="view_item/9824.html?af894a">Шале во франции</a></li>
</ul>
 
Как видите через "?" я передаю ключ поиска и помню в сессии его настройки. И теперь в каждом объекте я могу обратиться к условиям поиска, в контексте которых он открыт.
Теперь, опережая вопросы, объясню зачем ключ, а не просто переменная в сессии:
Если у вас есть ключ поиска - пользователь может вести несколько параллельных поисков, и они не перепутаются.
Дополнительный функционал в виде кнопки "новый поиск" (новый ключ - пустая форма).
Если у вас есть авторизация - то вы сможете запомнить историю поисков, чтобы пользователь мог к ним вернуться (тогда ключ и параметры придется хранить в БД).
В кабинете помимо закладок и пометок можно сделать раздел "мои поиски" - там хранить истории поисков и по клику по ссылке - быстро восстанавливать параметры. Позволить пользователю удалять настройки поисков. Такой подход упростит длительный поиск апартаментов - т.е. дома-участки за день не находятся, а заполнять одну и ту же форму одними и теми же параметрами каждый день напрягает.

Что-то уже идеи по функционалу поперли. Погнал работать. =) Удачи. Спрашивайте, количего.

Вам всеравно надо хранить где то критерии поиска что бы выводить один и тот же список при переходе на страницу одного элемента и обратно, например в сессии.