2013-07-17 25 views
0

我有分頁和codeigniter的問題。我有一個從女巫的quick_searh視圖,我將這些信息提交給索引控制器函數,並在那裏設置分頁並調用quick_search方法來獲取我想要的數據。它只是沒有用。我花了5個多小時重寫這些方法,甚至從quick_search開始,然後傳遞給索引函數,但沒有任何工作,請幫助。codeigniter分頁,功能之間發送參數

public function index(){ 

    // search parameters config 
    $lawyer_name = $this->input->post('lawyer_name'); 
    $kanzlei = $this->input->post('kanzlei'); 
    $area_of_expertise = $this->input->post('area_of_expertise'); 
    $post_code = $this->input->post('post_code'); 
    $city = $this->input->post('city'); 

    $result = $this->quick_search(
     $this->uri->segment(3), 
     $lawyer_name, 
     $kanzlei, 
     $area_of_expertise, 
     $post_code, 
     $city); 

    if(isset($result)){ 
     // pagination config 
     $this->load->library('pagination'); 
     $this->load->library('table'); 

     $config['total_rows'] = count($result); 
     $config['base_url'] = 'http://localhost/anwalt/index.php/search/index'; 
     $config['per_page'] = 5; 
     $config['num_links'] = 5; 

     $this->pagination->initialize($config); 

     $data['search_result_array'] = $result; 
     $data['main_content'] = 'pages/quick_search_results'; 
     $this->load->view('templates/home_body_content', $data); 
    } 
} 

的quick_search功能:

public function quick_search($offset, $lawyer_name, $kanzlei, $area_of_expertise, $post_code, $city){ 

    // no input in the quick search 
    if(empty($lawyer_name) && empty($kanzlei) && empty($area_of_expertise) 
     && empty($post_code) && empty($city)) 
    { 
     $result = 'nothing'; 

    } else { 

     $this->load->model('quick_search_model'); 
     $result = $this->quick_search_model->get_search_results(
      $offset, 
      $lawyer_name, 
      $kanzlei, 
      $area_of_expertise, 
      $post_code, 
      $city 
      ); 
    } 

    return $result; 
} 

的SQL是這樣的:

$sql = "SELECT users.user_id, users.canonical_name, first_name, last_name, city, phone_number, kanzlei 
    from users 
    inner join user_normal_aos 
    on users.user_id = user_normal_aos.user_id 
    inner join normal_areas_of_expertise 
    on user_normal_aos.normal_areas_of_expertise_id = normal_areas_of_expertise.normal_areas_of_expertise_id 
    where ".implode(" AND ", $where); 

    if(empty($offset)){ 
     $offset = 0; 
    } 

    $sql = $sql." LIMIT ".$offset.", 4"; 

的數據顯示,但我沒有看到拼版在那裏..甚至當我想改變分割它的網址說我沒有任何數據。

的看法是這樣的:

<h1>Quick search results</h1> 
<?php 
if($search_result_array == "nothing"){ 
    echo "<h3>You havent inputed anything</h3>";  
} else { 
    echo $this->table->generate($search_result_array); 
} 
echo $this->pagination->create_links(); 

回答

1

根據你的搜索變量,你可以使用這個:

$lawyer_name = $this->input->post('lawyer_name'); 
$kanzlei = $this->input->post('kanzlei'); 
$area_of_expertise = $this->input->post('area_of_expertise'); 
$post_code = $this->input->post('post_code'); 
$city = $this->input->post('city'); 

/*pagination start*/ 
$this->load->library('pagination'); 
$config['base_url']   = base_url().'index.php/index/lawyer/'.$lawyer_name.'/kanzlei/'.$kanzlei.'/area_of_expertise/'.$area_of_expertise.'/post_code/'.$city.'/page/'; 
$config['total_rows']  = $this->model->count_all_results(); ###implement this function to count all the vodeos as per the search variables, just use the same function as "quick_search" but without the limit clause 
$config['per_page']   = count($result);; 
$config['uri_segment']  = 10; 
$config['next_link']  = 'Next'; 
$config['prev_link']  = 'Prev'; 
$config['cur_tag_open']  = '<span class="active_page">'; 
$config['cur_tag_close'] = '</span>'; 
$this->pagination->initialize($config); 
/*pagination end*/ 
+0

謝謝你的回答,我已經實現了你的想法,但它無效,我也在'base_url()'中添加了post_code和city。爲模型添加了一個新的函數,返回行數,但現在當我點擊2.頁面時,這實際上是基礎url更改的時間,並且我得到一個錯誤seking這個頁面不存在: - /我做了有問題 ? – kalafun

+0

我不好改變這一行,上面的答案是缺少控制器名稱,我假設你的控制器名稱是'搜索':'$ config ['base_url'] = base_url()。'index.php/search/index/lawyer /'.$ lawyer_name。'/ kanzlei /'.$ kanzlei。'/ area_of_expertise /'.$ area_of_expertise。'/ post_code /'.$ city。'/ page /';' –

+0

是的,我有這樣的:'' $ config ['base_url'] = base_url()。'index.php/search/index/lawyer /'.$ lawyer_name。'/ kanzlei /'.$ kanzlei。'/ area_of_expertise /'.$ area_of_expertise。'/ post_code/'。$ post_code。'/ city /'.$ city。'/ page /';'但它仍然不起作用。當我點擊搜索按鈕時,網址就像'../ index.php/search/index' – kalafun

0

不能使用$這 - > pagination-> create_links();方法。

使用$ data ['pagination'] = $ this-> pagination-> create_links();在控制器加載前查看 和echo $分頁

希望這會幫助你。