2012-01-26 51 views
0

我有一個顯示所有記錄的控制器函數,我正在使用分頁類來劃分頁面中的記錄。控制器看起來有點像在uri中搜索字詞的Codeigniter分頁

class Example extends CI_Controller { 

    [...] 

    function All() 
    { 
     //Gets all the records 
     //Pagination uri_segment set to 3 
    } 
} 

現在我添加了搜索記錄的能力。我需要搜索詞在uri中,所以函數就像function All($search_term = false)。我的問題是,該功能可能會或可能不會有搜索條件。取決於此,分頁的uri部分將會改變。沒有搜索詞uri_segment是3,與它是4.

有沒有辦法解決這一問題,同時使用相同的功能,並在網址中搜索詞?

回答

0

這是可以做到的各種方式,我個人會做一些簡單的像它存儲在會話或餅乾,但你可以做URI以及指CI論壇這一個:
http://codeigniter.com/forums/viewthread/59364/

請請注意,人們可能會在搜索字詞中輸入非URI友好字符串,並且必須對這些值進行urlen編碼/解碼才能將它們放入字符串中,而不需要使用Cookie或會話。但是我再次看到複製&將鏈接粘貼到某個人的搜索結果的好處。

0

您可以使用查詢字符串的get參數。例如:

的search.php

function search() { 
    $q = $this->input->get('q'); 
    $page = $this->uri->segment(3); 
    $results = $this->my_model->search($q, $page); 
    $this->load->view('search_tpl', $results); 
} 

search_tpl.php

echo form_open(current_url(), array('method' => 'get')); 
echo form_input('q'); 
echo form_submit('search', 'Search'); 
echo form_close(); 
0

您可以使用在分頁$配置變量page_query_string

$config['page_query_string'] = TRUE; 

啓用此選項後,將使用$ _GET創建分頁鏈接。

結果舉例: example/all/?per_page=20

-1

只需更改

$config["uri_segment"] = 3;$config["uri_segment"] = 4;

,改變BASE_URL

$config["base_url"] = "site_url('student/index')".$search_key; 

的d得到search_key by

$key = $this->uri->segment(3);