我有一個小問題。如何使用php和Codeigniter存儲搜索條件?
我已經使用CodeIgniter框架在PHP中編寫了一個完整的網站。我的模塊之一是搜索模塊,它包含帶關鍵字的文本輸入和帶有過濾標準的三個選擇列表。
沒關係,當我在尋找的東西 - 結果的列表分頁是通過URL來完成這樣的:
mysite.com/$keyword/$criteria1/$criteria2/$criteria3/$offset
的作品就像一個魅力。
但是當我進入我的一個圖像(它是圖像庫)時,我想要有一個選項可以從我的搜索結果中進入下一個和上一個圖像 - 我從該圖像輸入的圖像。
我現在用這種方法解決這個問題 - 我有一個名爲'search_conditions'的會話表,我將關鍵字和我的三個標準的值存儲在那裏,但這很不舒服,因爲如果有人打開第二個窗口並在那裏搜索別的東西?
然後,在另一個窗口或選項卡中的所有搜索都會得到相同的條件 - 因爲每次新搜索,用戶都會覆蓋會話值。
我的下一個和以前的功能:
public function next($count)
{
$search = $this->session->userdata('search_conditions'); //getting session table and overwriting it
$catid = isset($search['catid'])?$search['catid']:'0';
$brandid = isset($search['brandid'])?$search['brandid']:'0';
$prodid = isset($search['prodid'])?$search['prodid']:'0';
$keyword = isset($search['keyword'])?$search['keyword']:'';
$res = $this->search_model->main_search($keyword, $catid, $brandid, $prodid, $count, 1);
}
public function previous($count)
{
$search = $this->session->userdata('search_conditions');
$catid = isset($search['catid'])?$search['catid']:'0';
$brandid = isset($search['brandid'])?$search['brandid']:'0';
$prodid = isset($search['prodid'])?$search['prodid']:'0';
$keyword = isset($search['keyword'])?$search['keyword']:'';
$res = $this->search_model->main_search($keyword, $catid, $brandid, $prodid, $count-2, 1);
}
你能給我推薦一些其他的,更舒適的解決方案,因爲這似乎不是很好... :)
謝謝!
是的,我試圖做到這一點:)我的網址看起來像:mysite.com/image/id/keyword/crit1/crit2/crit3/offset:) - 相當長,是吧? – pawel 2012-08-06 22:52:30
@pawel不錯。看看SO或Google搜索URI的外觀如何:) – bostaf 2012-08-06 23:01:53
我在網址上做過一個工作:)dzieki! :) – pawel 2012-08-06 23:22:27