сохранение фильтров поисковой формы в сеансе - PullRequest
0 голосов
/ 27 февраля 2012

У меня есть разные формы поиска на разных страницах, например, на странице у меня есть поисковая форма на левая сторона. http://www.terra -reisen.com /

Аналогично на странице предварительного просмотра форма в области заголовка http://www.terra -reisen.com / веб / index.cfm / пм / uebersicht # 1

и на странице подробностей, нажав на вкладку «Термин и preise», можно увидеть другую форму. http://www.terra -reisen.com / веб / index.cfm / пм / подробно / idobjekt / 4799 / suchartFrom / uebersicht

Теперь я хочу разработать тип контейнера контейнера для каждой страницы. Я имею в виду, если пользователь фильтрует некоторые данные на стартовой странице, например, страна = Австрия (в поисковой форме) и зайдите на страницу предварительного просмотра и снова отфильтруйте по конкретному городу и перейдите на страницу с подробностями теперь я со страницы детализации захожу на страницу предварительного просмотра, выбранные фильтры должны применяться автоматически, и аналогично от предварительного просмотра до начальной страницы должны применяться все фильтры.

Есть ли какой-либо шаблон проектирования или что-то вроде avialble для такой ситуации?

1 Ответ

0 голосов
/ 27 февраля 2012

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

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

session_start();

$filters = array('location' , 'age' , 'language')

if (!isset($_SESSION['filters'])) {
  if(array_key_exists('set_new_filters', $_POST)) //the name of the submit button of the filters form
  {
     foreach($filters as $filter)
     {
         $session_filters = $filter.":".$_POST[$filter].";";
     }
     $_SESSION['filters'] = $session_filters;
  }
} else {

  $user_filters = explode(";" , $_SESSION['filters']);  
  /*
  $user_filters: Array (
     [0] => location:somevalue
     [1] => age:somevalue
     [2] => language:somevalue
  )
  */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...