2010-01-21 52 views
1

我試圖使用多個搜索條件來實現分頁。 假設我有學生表。當學生列表顯示時,我也使用分頁。 分頁鏈接是。 site_url . '/student/page/';所以我用$config['uri_segment'] = 1; 所以分頁鏈接將是在codeigniter中使用多個搜索條件的分頁

<a href="http://mysite/index.php/student/page/0">1</a> 
<a href="http://mysite/index.php/student/page/1">2</a> 

和兒子。

之後,我想使用3個使用textfield實現的搜索條件來搜索學生數據。

id name address. 

用戶可以通過id或名稱或地址或三個標準的組合進行搜索。 url變成

http://mysite/index.php/student/page/0 
href=http://mysite/index.php/student/page/1 

和兒子。

但我使用get方法進行搜索。同時嘗試使用搜索條件字段搜索URL成爲

href="http://mysite/index.php/student/page/1?id=1&name=a&address=b 

發生問題時,我嘗試創建基於標準的分頁。因爲分頁鏈接都包含查詢字符串 我不知道如何創建成爲

href="http://mysite/index.php/student/page/0?id=1&name=a&address=b 
href="http://mysite/index.php/student/page/1?id=1&name=a&address=b 

或者你有解決這個問題的最佳做法?


嗨phill .... 我試試你的建議。

$array = array('id' => '001', 'name' => 'a', 'address' => 'canada'); 

的URL成爲 id/001/name/a/address/canada。我使用$this->uri->uri_to_assoc()函數來獲取段的關鍵和值。

array (
    id => 001, 
    name=>a, 
    address=>canada 
) 

但是雖然有一些搜索條件,而不包括搜索時。比方說,用戶只能按名稱和地址搜索。該陣列成爲 $array = array('id' => '', 'name' => 'a', 'address' => 'canada');和URL id/name/a/address/canada assoc命令陣列成爲

array (
    id => name, 
    a=>address, 
    canada=> 
) 

assoc命令陣列不再雜亂無章。所以我無法獲得assoc數組的正確值。 我想我會設置標識符的搜索條件,如果不包括在內。假設我把#

if isset($_GET['id']) then 
$id = '#' 
else 
$id = $_GET['id'] 

$array = array('id' => $id, 'name' => 'a', 'address' => 'canada'); 

那怎麼樣......?或者如果還有其他最佳做法?

回答

1

對於我會用$這個 - > URI-> uri_to_assoc():

指數。PHP /用戶/搜索/名/喬/位置/英國/性別/男性

使用此功能,您可以把 URI到一個關聯數組 這個原型:

[array] 
(
    'name' => 'joe' 
    'location' => 'UK' 
    'gender' => 'male' 
) 

見完整的文檔here

你仍然可以使用page/1作爲第一批,然後有/名/任何事後。

+0

嗨,菲爾。我嘗試了你的建議。但我有一些問題。我編輯了我的問題。希望你能檢查我的問題,並給我解決一些問題。 謝謝 – 2010-01-22 00:41:22

+0

只要確保不要將密鑰放入網址中(如果它們沒有值)。 – 2010-01-22 09:38:05