0

ページネーションを使用してcodeigniterを使用していますが、ページごとのレコードを選択するとデータが表示されますが、次のページボタンをクリックすると、デフォルトで3ページにリダイレクトされるため、ページごとに25のデータフィールドがあるため、ページ上のデータは次のように分割されます。デフォルト値。

これがコントローラーです

        function search($page=0)
      {     
        // selecting per page data              
        if ($this->input->post('per_page')!='') {
                 $recordperpage = $this->input->post('per_page');
                 $per =  $this->input->post('per_page');
                 $page = $this->input->post('per_page');
                echo $this->session->userdata('per');
            } 


            else {
                $recordperpage = 25;    
            }
      $keyword = $this->input->post('keyword');

      $result['front'] = $this->search_model->search($keyword,$page,$recordperpage);

    $mypaing['total_rows']= $this->search_model->listing_num('*','tabel_name','flag',1,'keyword',$keyword);
    $mypaing['base_url']    =   base_url()."admin/h_search/search/";
    $mypaing['per_page']    =   $recordperpage;
    $mypaing['uri_segment'] =   4;      
    $this->pagination->initialize($mypaing);
    $result['recordperpage'] = $recordperpage;
    $result['paginglink']   =   $this->pagination->create_links();
    $data['page_heading']   = "Doctor Search Result";
   $data['contents'] = $this->load->view('admin/listing/search',$result,true);  

    $this->load->view('admin/template',$data);
    }`enter code here`

モデル 検索からレコードを取得するためのモデル

 function search($keyword,$page,$recordperpage)
{    
    $sql ="SELECT * FROM tabel_name WHERE flag = 1  AND keyword LIKE '%".$keyword."%' 
    LIMIT ".$page.",".$recordperpage."" ;
    $result=$this->db->query($sql);
    return $result; 
} 
function listing_num($select,$from,$where_colum,$where,$where_colum1,$where1)
{
    $this->db->select($select);
    $this->db->from($from);
    $this->db->where($where_colum,$where);
    $this->db->where($where_colum1,$where1);


    $query=$this->db->get();
    return $query->num_rows();
}

意見

     <div class="counter">
      <input type="hidden" value="<?=$recordperpage?>" name="rpp_hidden" id="rpp_hidden" />
    <select onchange="this.form.submit();" name="per_page" id="per_page">
    <option value="25" <? if ($recordperpage == 25) {  print 'selected=selected'; }?>  >25</option>
    <option value="50" <? if ($recordperpage == 50) {  print 'selected=selected'; }?> >50</option>
    <option value="75" <? if ($recordperpage == 75) {  print 'selected=selected'; }?> >75</option>
    <option value="100" <? if ($recordperpage == 100) {  print 'selected=selected'; }?> >100</option>
    </select> per page 
  </div>

</div>

投稿ごとにデータを選択すると、ページ1にリダイレクトされ、ページ50ごとにレコードを選択すると、0から50までのデータが表示されます。

前もって感謝します

4

1 に答える 1

0

検索でない場合、オフセットはどこに設定しますか?ifステートメントの上にこれを追加してみてください。最初にページをロードしたときのように、URIセグメント4がない場合は、オフセットが0に設定され、ある場合はセグメントが使用されます。次に、検索の場合、ifステートメントがそれをオーバーライドします。

        $page = ($this->uri->segment(4) ? $this->uri->segment(4) : 0);
于 2013-01-31T12:46:33.633 に答える