2016-06-27 40 views
0

我正在用codeigniter分頁進行搜索。我的分頁工作正常,但問題在搜索後觸發。分頁鏈接顯示,但在點擊下一頁或第二頁後,它不會進入下一頁。CI分頁鏈接在搜索後不起作用

這就是我現在所擁有的。

控制器

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Division extends MY_Controller { 

function __construct(){ 

    parent::__construct(); 
    $this->load->model('division_model'); 
    $this->load->helper('url'); 
    $this->load->library('table'); 
    $this->load->library("pagination"); 
} 

public function index() { 
    $this->data['title'] = 'Division List'; 
    $this->data['result'] = $this->search(); 
    $this->middle = 'division_view'; 
    $this->layout(); 
} 

function search(){ 

    $search = $this->input->get("search"); 
    $config = array(); 
    $config["base_url"] = base_url() . "division/$search"; 
    $config['total_rows'] = $this->division_model->record_count($search); 
    $config["per_page"] = 10; 
    $config["uri_segment"] = 2; 
    $choice = $config["total_rows"]/$config["per_page"]; 
    $config['full_tag_open'] = '<ul class="pagination"><li>'; 
    $config['full_tag_close'] = '</li></ul>'; 
    $config['cur_tag_open'] = '<li class="active"><a href="'.base_url().$this->uri->uri_string().'">'; 
    $config['cur_tag_close'] = '</a></li>'; 
    $config['num_tag_open'] = '<li>'; 
    $config['num_tag_close'] = '</li>'; 
    $config['next_tag_open'] = '<li>'; 
    $config['next_tag_close'] = '</li>'; 
    $config['last_tag_open'] = '<li>'; 
    $config['last_tag_close'] = '</li>'; 
    $config['use_page_numbers'] = TRUE; 

    $this->pagination->initialize($config); 
    //echo $this->pagination->create_links(); 
    $pagination = $this->uri->segment(2); 
    if($pagination == "") { $pagination = 0; } 
    $offset = $pagination==0? 0: ($pagination-1)*$config["per_page"]; 

    $data['results'] = $this->division_model->search_page($config["per_page"], $offset, $search); 
    $data['links'] = $this->pagination->create_links(); 

return $data; 
} 

}

型號

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Division_model extends CI_Model { 

function record_count($search = NULL) { 
    //if ($search == "NIL") $search = ""; 
    $query = $this->db->like('division_name',$search)->or_like('division_code',$search)->or_like('division_acro',$search)->get("division"); 
    return $query->num_rows(); 
} 

function search_page($limit, $start, $search = NULL) { 
    $this->db->like('division_name',$search)->or_like('division_code',$search)->or_like('division_acro',$search)->limit($limit, $start); 
    $query = $this->db->get("division"); 
    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $row) { 
     $data[] = $row; 
    } 
     return $data; 
    } 
    return false; 

} 

任何幫助會升值。

+0

什麼錯誤顯示當點擊下頁? –

+0

錯誤'404 Page Not Found' – yara

+0

你能顯示你的下一頁鏈接嗎?我的意思是網址 –

回答

0

檢查該行....

$配置[ 「BASE_URL」] = BASE_URL()。 「師/ $搜索」;

應該是

$配置[ 「BASE_URL」] = BASE_URL()。 「分割/搜索」;

+0

不適用於我 – yara

0

解決這個問題是這樣的:

$config["base_url"] = base_url("division/search"); 

// your offset will be in segment 3 --> division/search/offset 
$config["uri_segment"] = 3; 

// translate number of page to offset so it will be something like 
// division/search/10 division/search/20 division/search/30 etc rather than 
// division/search/1 division/search/2 division/search/3 etc 
$config['use_page_numbers'] = FALSE; 

希望這有助於:)

+0

這不起作用。 – yara

+0

@Yara,我很好奇,爲什麼你的配置系統看起來很不尋常?像這樣'$ config ['cur_tag_open'] = ...',你只需要在那裏放一些CSS類... – MSI

0

嘗試。改變過去的4線$config陣列,然後$pagination可變

$config["base_url"] = site_url('division/search?search='.$search); 
$config['total_rows'] = $this->division_model->record_count($search); 
$config["per_page"] = 10; 
$config["uri_segment"] = 2; 
$choice = $config["total_rows"]/$config["per_page"]; 
$config['full_tag_open'] = '<ul class="pagination"><li>'; 
$config['full_tag_close'] = '</li></ul>'; 
$config['cur_tag_open'] = '<li class="active"><a href="'.base_url().$this->uri->uri_string().'">'; 
$config['cur_tag_close'] = '</a></li>'; 
$config['num_tag_open'] = '<li>'; 
$config['num_tag_close'] = '</li>'; 
$config['next_tag_open'] = '<li>'; 
$config['next_tag_close'] = '</li>'; 
$config['last_tag_open'] = '<li>'; 
$config['last_tag_close'] = '</li>'; 
$config['enable_query_strings'] = TRUE; 
$config['use_page_numbers'] = TRUE; 
$config['query_string_segment'] = 'page'; 
$config['page_query_string'] = TRUE; 

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

if ($this->input->get('page')) { 
     $sgm = (int) trim($this->input->get('page')); 
     $segment = $config["per_page"] * ($sgm - 1); 
    } else { 
     $segment = 0; 
    } 
$data['results'] = $this->division_model->search_page($config["per_page"], $segment, $search); 
+0

也沒有找到錯誤http:// localhost/new_ci/division/statistics?page = 2 – yara

+0

立即檢查編輯答案。 '$ config [「base_url」]'changed –

+0

所有的分頁不起作用,即使我沒有搜索 – yara