0

私は codeigniter を使用するのが初めてなので、今は少し混乱しています。

プレーヤーのデータ オブジェクトをビューに渡すと、すべてが正しく一覧表示されます。codeigniter のページネーションを使用しようとしています。

コントローラーの関数にページネーションをロードしました。

public function playersHub(){
    $playersData = $this->cms_model->getAllPlayers();
    $pageConf = array(
        'base_url' => base_url('home/playersHub/'),
        'total_rows' => count($playersData),
        'per_page' => 20,
        'uri_segment' => 3,
    );
    $this->pagination->initialize($pageConf);
    $data = array(
        'players'=> $playersData,
        'content'=> 'home',
        'link' => $this->pagination->create_links() 
    );
    $this->load->view('template/template',$data);
}

私からしてみれば:

<div class="container-fluid">
<div class="row-fluid">
    <table class = "table table-strip">
        <?php foreach($players as $p): ?>
            <tr>
                <td><?php echo $p->ufbid; ?></td>
                <td><?php echo $p->uname; ?></td>
                <td><?php echo $p->ulocation; ?></td>
                <td><?php echo $p->uemail; ?></td>
                <td><?php echo $p->umobile; ?></td>
                <td><?php echo (($p->ugrand == 0) ? 'no':'yes'); ?></td>
                <td><?php echo $p->points; ?></td>
                <td><?php echo $p->pticks; ?></td>
            </tr>
        <?php endforeach; ?>
        <tr><td colspan = "9"><?php echo $link; ?></td></tr>
    </table>

</div>

コンストラクター メソッドでページネーションを読み込みました。ページネーションが作成されますが、データは 1 ページのままです。2 または「次へ」をクリックしても、同じことが行われます。

4

2 に答える 2

2

1.最初にページネーション ライブラリをロードします。

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

2.データベースから正しいカウントを返し、別の関数を作成して合計カウントを返します。によって返されるデータをカウントしないで getAllPlayers()ください。ケースに応じて、ページに表示するデータgetAllPlayers()を返す ために使用します。20 (per_page)offset($this->uri->segment(3))

例えば。

function playersHub(){
    $perPage    = 20;
    $playersData = $this->cms_model->getAllPlayers($perPage, $this->uri->segment(3));
    $pageConf = array(
        'base_url' => base_url('home/playersHub/'),
        'total_rows' => $this->model_name->count_all(),
        'per_page' => $perPage,
        'uri_segment' => 3,
    );
    $this->pagination->initialize($pageConf);
    $data = array(
        'players'=> $playersData,
        'content'=> 'home',
        'link' => $this->pagination->create_links() 
    );
    $this->load->view('template/template',$data);
}

#function to count all the data in the table
function count_all(){
    return $this->db->count_all_results('table_name');
}

#function to return data from the table depending on the offset and limit
function getAllPlayers($limit, $offset = 0){
    return $this->db->select('')->where('')->get('table_name', $limit, $offset)->result_array();
}
于 2013-10-17T09:21:04.003 に答える
0

このようなもの

public function playersHub(){
$playersData = $this->cms_model->getAllPlayers();
$pageConf = array(
    'base_url' => base_url('home/playersHub/'),
    'total_rows' => count($playersData),
    'per_page' => 20,
    'uri_segment' => 3,
);
$this->pagination->initialize($pageConf);


//get the start
    $start = ($this->uri->segment(3))?$this->uri->segment(3):0;
    //apply the pagination limits.You may need to modify your model function
    $playersData = $this->cms_model->getAllPlayers($start,$pageConf['per_page']);

$data = array(
    'players'=> $playersData,
    'content'=> 'home',
    'link' => $this->pagination->create_links() 
);
$this->load->view('template/template',$data);

}

于 2013-10-17T09:27:58.353 に答える