簡體   English   中英

Codeigniter分頁-數組變量在第2頁上為空

[英]Codeigniter pagination - Array variable get empty on page 2

我正在搜索頁面上,因為搜索基於數組$s_id 一旦使用某個輸入值進行搜索,搜索結果就會與分頁鏈接一起完美顯示。( 分頁鏈接也很完美。如果我有6個結果,並且per_page為2,則其顯示3頁鏈接 )。

現在我的問題是,一旦我單擊頁面2上顯示為空白的頁面,並嘗試在頁面2上打印$s_id ,則該數組就像Array ( [0] => ) ,這意味着在頁面2上$s_id具有其他值。

控制器

public function index()
        {        
        $s_id = array();
        $skills = $this->input->post('skills');
        //pagination settings
        $config['per_page'] = 2;
        $config['base_url'] = site_url('search');
        $config['first_url'] = site_url('search/').'1';
        $config['use_page_numbers'] = TRUE;
        $config['num_links'] = 3;
        $config['uri_segment'] = 2;
        $config['cur_tag_open'] = "<li><span><b>";
        $config['cur_tag_close'] = "</b></span></li>";
        $config['full_tag_open'] = '<ul class="pagination pagination-large">';
        $config['full_tag_close'] = '</ul>';
        $config['prev_tag_open'] = '<li>'; 
        $config['prev_tag_close'] = '</li>';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li class="active"><a>';
        $config['cur_tag_close'] = '</a></li>';

        $page = $this->uri->segment(2);

        $limit_end = ($page * $config['per_page']) - $config['per_page'];
        if ($limit_end < 0){
            $limit_end = 0;
        }

        if($skills == TRUE || $this->uri->segment(2) == TRUE){
            $s_id = explode(',', $skills[0]);
            if($s_id){
              $filter_session_data['skill_id_selected'] = $s_id;
            }else{
              $s_id = $this->session->userdata('skill_id_selected');
            }
            $data['skill_id_selected'] = $s_id;
            if(isset($filter_session_data)){
                $this->session->set_userdata($filter_session_data);
            }

            // print_r($s_id); exit();                     //commented
            // $s_id = array('2D Design','3D Design');     //commented

            $data['count_user'] =  $this->m_results->count_users($s_id);
            $config['total_rows'] = $data['count_user'];
            $data['freelancers'] = $this->m_results->search_people($s_id,$config['per_page'],$limit_end);
            $this->pagination->initialize($config);
            $this->load->view('include/header');
            $this->load->view('search',$data);
            $this->load->view('include/footer');
        }else{  
            $this->load->view('include/header');
            $this->load->view('search');
            $this->load->view('include/footer');
        }
}  

模型

public function search_people($s_id,$limit_start,$limit_end)
{

    $this->db->from('search_result');
    if($s_id){
        $this->db->where("FIND_IN_SET('$s_id[0]', skills) != ", 0);
        for($x=1; $x < count($s_id); $x++) {
            $this->db->or_where("FIND_IN_SET('$s_id[$x]', skills) != ", 0);
        } 
    }

    $this->db->limit($limit_start, $limit_end);
    $query = $this->db->get();
    return $query->result_array();
}


public function count_users($s_id=null)
{

    if($s_id){
        $this->db->where("FIND_IN_SET('$s_id[0]', skills) != ", 0);
        for($x=1; $x < count($s_id); $x++) {
            $this->db->or_where("FIND_IN_SET('$s_id[$x]', skills) != ", 0);
        } 
    }
    $query = $this->db->get();
    return $query->num_rows();
}  

請幫助我解決此問題。

$skills = $this->input->post('skills'); -很重要。 使用post方法提交表單時,將獲得此值。 對於next page您必須提交具有skills和頁碼輸入的表單,而不僅僅是重定向URL。

要么

將表單提交方法更改為GET 因此,您可以輕松地將URL重定向為下一頁和上一頁的搜索字段值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM