2012-02-27 83 views
0

我在不同的頁面上有不同的搜索表單,例如在頁面我有一個 左側的搜索表單。 http://www.terra-reisen.com/在會話中保留搜索過濾器

類似地在預覽頁在首標區 http://www.terra-reisen.com/web/index.cfm/pm/uebersicht#1

和詳細信息頁面點擊「Termine & preise」標籤可以看到另一種形式的一種形式。 http://www.terra-reisen.com/web/index.cfm/pm/detail/idobjekt/4799/suchartFrom/uebersicht

現在我想要開發的是每個頁面的濾鏡容器的靈感。我的意思是,如果用戶在起始頁面上過濾了一些數據,例如country = Austrie(在搜索表單中) ,然後進入預覽頁面並針對特定城市再次過濾,現在我要從詳細信息頁面 進入預覽頁面,應該自動應用選定的過濾器,並且類似地從預覽到首頁,應該應用所有文件管理器。

有沒有任何設計模式或類似avialble這樣的sitution?

回答

0

你應該寫的是創建一個具有過濾器會話的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 
) 
    */ 
}