簡體   English   中英

我想將分頁放在Codeigniter框架的頁面上

[英]I want to put pagination on my page in codeigniter framework

我想在婚姻項目的查看頁面上添加分頁。 在這個項目中,變量流以這種方式傳遞,即從View-page(搜索表單)-傳遞到Controller-to-model-to-view頁面...我所做的是我從view-controller-model-view中傳遞了值。 在結果頁面(即在查看頁面)中,我能夠獲取記錄總數和頁面總數,還能夠獲取每個記錄的單獨值。

現在開始我的問題,我想在結果頁面(即查看頁面)上添加分頁,我要發布控制器,模型和查看頁面。

控制器頁面

$per_page=$this->input->post('per_page');
$look = $this->input->post('look');
$age = $this->input->post('age'); 
$age_from = $this->input->post('age_from');
$age_to = $this->input->post('age_to');
$se_ct = $this->input->post('sect');
$subsect = $this->input->post('subsect');
$coun_try = $this->input->post('country');
$sta_te = $this->input->post('state');
$ci_ty = $this->input->post('city');
$qualification = $this->input->post('qualification');

$data['showdata']   =   $this->searchresultss->login($per_page,$look,$age, $age_to,$age_from,$se_ct,$subsect,$coun_try,$sta_te, $ci_ty,$qualification);

$this->load->view('searchresult',$data);

模型頁

 function login($per_page=3,$look,$age,$age_to,$age_from,$se_ct,$subsect,$coun_try, $sta_te, $ci_ty,$qualification)
 {
$query="SELECT *
FROM users
WHERE  

if('$se_ct'!='',sect =  '$se_ct' AND if('$subsect' !='',subsect =  '$subsect',subsect like  '%%'),sect like  '%%' AND subsect like  '%%')
AND
IF( '$coun_try' !='', country =  '$coun_try'
AND 
if('$sta_te' !='', state =  '$sta_te'
AND  
if('$ci_ty' !='',city =  '$ci_ty',city like  '%%'),state LIKE  '%%'
AND city LIKE  '%%'), country LIKE  '%%'
AND state LIKE  '%%'
AND city LIKE  '%%' ) 
AND age >=  '$age_from'
AND age <=  '$age_to'
AND 
IF('$qualification' !='',qualification =  '$qualification',  qualification LIKE  '%%' ) 
And gender = '$look'
And status='1'";
$data=array();
$query=$this->db->query($query);
$data['results']=$query->result_array();
$data['count']=$query->num_rows();

$data['pages']=ceil($data['count']/3);

return $data;
 }
}

我的查看頁面(IERESULT頁面)

<?php
//echo "<pre>";
//print_r($showdata);
if (isset($showdata)){
            foreach ($showdata['results'] as $k => $v) {
                ?>
                <table width="200" border="1">
  <tr>
    <td>  <?php echo $v['gender'];?></td>
    <td> <?php echo $v['email'];?></td>
  </tr>

</table>



   <?php
            }
        }
        echo $showdata['count'];  echo $showdata['pages'];
        ?>

`我在上面的腳本中嘗試做的是獲取查詢結果以及記錄數量和頁面數量,我以為我可以進行分頁工作,但是我錯了。 所以請ci開發人員幫助我編寫分頁腳本。 我對Ci框架完全陌生。

使用ci分頁庫,例如

控制者

 $config = array();
            $config["base_url"] = url;
            $config["total_rows"] = query;
            $config["per_page"] = 5;
            $config["uri_segment"] = 4;
            $config["first_link"] = 'First';
            $config["last_link"] = 'Last';
            $config["prev_link"] = 'Previous';
            $config["next_link"] = 'Next';
            $this->pagination->initialize($config);

            $page = ($this->uri->segment(4)) ? $this->uri->segment(4) : 0;

            $this->db->limit($config["per_page"], $page);
$data["links"] = $this->pagination->create_links();

視圖:

在視圖上顯示鏈接

    If you want use CI pagination below code help for you

    public function paginationFunction($pg = 0)                     
    {

       $query="SELECT *
               FROM users
               WHERE  
              if('$se_ct'!='',sect =  '$se_ct' AND if('$subsect' !='',subsect =  '$subsect',subsect like  '%%'),sect like  '%%' AND subsect like  '%%')
    AND
    IF( '$coun_try' !='', country =  '$coun_try'
    AND 
    if('$sta_te' !='', state =  '$sta_te'
    AND  
    if('$ci_ty' !='',city =  '$ci_ty',city like  '%%'),state LIKE  '%%'
    AND city LIKE  '%%'), country LIKE  '%%'
    AND state LIKE  '%%'
    AND city LIKE  '%%' ) 
    AND age >=  '$age_from'
    AND age <=  '$age_to'
    AND 
    IF('$qualification' !='',qualification =  '$qualification',  qualification LIKE  '%%' ) 
    And gender = '$look'
    And status='1'";

    $data=array();   
    $query=$this->db->query($query)->result_array();
    $totalRecord=$query->num_rows();

             /* [Start:: Pagination code] */

            $config['base_url'] = base_url() . 'test'; //page url i.e.controller name 
            $data['count'] = $totalRecord;
            $config['total_rows'] = $totalRecord;
            $config['per_page'] = 2;  //per page records
            $config['cur_page'] = $pg;  //third parameter first time is 0 
            $config['num_links'] = 4;

            $config['cur_tag_open'] = '<li><strong><a class="active" href="javascript:void(0);">';
            $config['cur_tag_close'] = '</a></strong></li>';
            $config['prev_link'] = 'Previous';
            $config['prev_tag_open'] = '<li>';
            $config['prev_tag_close'] = '</li>';
            $config['next_link'] = 'Next';
            $config['next_tag_open'] = '<li>';
            $config['next_tag_close'] = '</li>';
            $config['full_tag_open'] = '<ul>';
            $config['full_tag_close'] = '</ul>';
            $this->pagination->initialize($config);
            $data["pageLinks"] = $this->pagination->create_links();
            $data['page'] = $pg;

            //run same query but add limit 
           $query="SELECT *
FROM users
WHERE  

if('$se_ct'!='',sect =  '$se_ct' AND if('$subsect' !='',subsect =  '$subsect',subsect like  '%%'),sect like  '%%' AND subsect like  '%%')
AND
IF( '$coun_try' !='', country =  '$coun_try'
AND 
if('$sta_te' !='', state =  '$sta_te'
AND  
if('$ci_ty' !='',city =  '$ci_ty',city like  '%%'),state LIKE  '%%'
AND city LIKE  '%%'), country LIKE  '%%'
AND state LIKE  '%%'
AND city LIKE  '%%' ) 
AND age >=  '$age_from'
AND age <=  '$age_to'
AND 
IF('$qualification' !='',qualification =  '$qualification',  qualification LIKE  '%%' ) 
And gender = '$look'
And status='1' limit $pg,$config['per_page']"; 

            $data['results']=$query->result_array();

}

暫無
暫無

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

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