2015-12-15 139 views
1

当我搜索一个关键字时,它只是向我显示数据库中的所有信息。然后如果我点击分页中的下一个。关键字丢失。如果我点击分页中的下一个按钮,如何维护搜索的关键字?Codeigniter:如何为搜索结果分页

控制器:

public function info($offset=0) 
{  
$filter = $this->input->get("filter"); 
    $limit = 5; 
    $this->load->library('pagination'); 
    $filter = $this->input->get("filter"); 


    $this->db->where('is_valid','1'); 
    $this->db->like('requested_by',$filter); 
    $search = $this->input->get("search"); 
     $page = $this->uri->segment(3); 
    $config["base_url"] = "/ticketing/index.php/ticketing/info/"; 

    $config['total_rows'] = $this->db->count_all_results('db_ticketing.tr_ticket'); 
    $config['per_page'] = $limit; 
// $config['base_url'] = ("/ticketing/index.php/ticketing/info/"); 
    $config['use_page_numbers'] = false; 
    $config['num_links'] = 4; 


    $config['first_link'] = 'First'; 
    $this->pagination->initialize($config); 
    $data['pagination'] = $this->pagination->create_links(); 



$data['ticket_list'] = $this->ticketing_mdl->get_all_ticket($limit, $offset); 



    $this->load->view('ticketing/header'); 
    $this->load->view('ticketing/left_menu'); 
    $this->load->view('ticketing/info',$data); 
} 

型号

function get_all_ticket($limit,$offset) 
{ 
    if($this->input->get('search')){ 
    $match = $this->input->get('search'); 
     $sql = "SELECT * FROM db_ticketing.tr_ticket WHERE requested_by LIKE '%$match%' limit $limit offset $offset"; 
     return $this->db->query($sql); 

    } 
} 

查看:

<form method="get" action=""> 
       <tr> 
        <td>Search:</td> 
        <td><input type="text" name="search" /></td> 

       </tr> 
       </form> 
+0

您可以使用会话或URI段在词搜索下一个页面。 –

+0

尝试了uri细分,但不知道如何正确实施它。 –

+0

你会得到$ this-> uri-> segment();存储在一个变量中,然后使用该变量搜索下一页。 –

回答

1

试试这个

在控制器

$this->load->library('pagination'); 

$count = $this->ticketing_mdl->count_all_ticket(); # get total count matched 
//product pagination 
$config['base_url'] = base_url() . '/ticketing/index.php/info/'; 
$config['total_rows'] = $count; 
$config['per_page'] = 5; 
$config['uri_segment'] = 3; 
$limit = $config['per_page']; 

//Bootstrap pagination style 
$config['full_tag_open'] = '<ul class="pagination">'; 
$config['full_tag_close'] = '</ul>'; 
$config['first_link'] = false; 
$config['last_link'] = false; 
$config['first_tag_open'] = '<li>'; 
$config['first_tag_close'] = '</li>'; 
$config['prev_link'] = '&laquo'; 
$config['prev_tag_open'] = '<li class="prev">'; 
$config['prev_tag_close'] = '</li>'; 
$config['next_link'] = '&raquo'; 
$config['next_tag_open'] = '<li>'; 
$config['next_tag_close'] = '</li>'; 
$config['last_tag_open'] = '<li>'; 
$config['last_tag_close'] = '</li>'; 
$config['cur_tag_open'] = '<li class="active"><a href="#">'; 
$config['cur_tag_close'] = '</a></li>'; 
$config['num_tag_open'] = '<li>'; 
$config['num_tag_close'] = '</li>'; 


$this->pagination->initialize($config); 
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 
$data['links'] = $this->pagination->create_links(); 

$data['ticket_list'] = $this->ticketing_mdl->get_all_ticket($limit,$page); 

$this->load->view('ticketing/header'); 
$this->load->view('ticketing/left_menu'); 
$this->load->view('ticketing/info',$data); 

**在模型**

# get count of record 
function count_all_ticket() 
{ 
    if($this->input->get('search')){ 
     $match = $this->input->get('search'); 
     $sql = "SELECT * FROM db_ticketing.tr_ticket WHERE requested_by LIKE '%$match%'"; 
     $query = $this->db->query($sql); 
     $result = $query->result_array(); 

     $count = count($result); 
     return $count; 

    } 
} 

# get all results matched 
function get_all_ticket($limit,$page) 
{ 
    if($this->input->get('search')) 
    { 
     $match = $this->input->get('search'); 
     $sql = "SELECT * FROM db_ticketing.tr_ticket WHERE requested_by LIKE '%$match%' LIMIT $page, $limit"; 
     $query = $this->db->query($sql); 
     $result = $query->result_array(); 
     return $result; 
    } 
} 
+0

分页工作不正常。也 我得到了这个错误(严重性:错误 消息:呼吁成员函数结果()阵列) –

+0

仍然有同样的问题,当我点击一个页面链接重置url然后搜索关键字消失。 –