2

Codeigniterを使用しているサイトのページネーション機能に取り組んでいますが、修正できないというエラー メッセージが表示され続け、頭が痛くなります :D 誰かが私のコードを見て、どこが間違っているのか教えてください。私はただのビギナーです。

エラーはtnx であり、あなたの助けをUndefined property: CI_Loader::$pagination求めるFatal error: Call to a member function create_links() on a non-object in C:\....

view.php

<!doctype html>
<html>
    <head>

        <meta charset=utf-8>
        <meta name=description content="">
        <meta name=viewport content="width=device-width, initial-scale=1">
        <title>Untitled</title>
        <link rel=stylesheet href="css/style2.css">
        <link rel=author href="humans.txt">

     </head>
   <body>


            <h1>Answer</h1>
            <?php if (isset($records)) : foreach($records as $row) : ?>

      <div = 'container'>
         <!--pagination -->
         <?php echo $this->pagination->create_links(); ?>

          <ul>
              <h1><?php  echo  $row->question; ?></h1>
             <li><?php  echo  $row->answer1; ?></li>
               <li><?php  echo  $row->answer2; ?></li>
               <li><?php  echo  $row->answer3; ?></li>
               <li><?php  echo  $row->answer4; ?></li>
               <li><?php  echo  $row->answer5; ?></li>
               <li><?php  echo  $row->answer6; ?></li>
          <ul>
       </div>
          <?php endforeach; ?>
          <?php else : ?>
          <h2>no records were returned</h2>
          <?php endif; ?>
    </body>
</html>


コントローラ:

<?php

class Survay extends CI_Controller{

    function index()
    {
        $data = array(
            'question' => $this->input->post('question'),
            'answer1' => $this->input->post('answer1'),
            'answer2' => $this->input->post('answer2'),
            'answer3' => $this->input->post('answer3'),
            'answer4' => $this->input->post('answer4'),
            'answer5' => $this->input->post('answer5'),
            'answer6' => $this->input->post('answer6'),
        );


        if($query = $this->membership_model->get_records())
        {
            $data['records'] = $query;
        }

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

    }



    function page()
    {
        //pagination
        $this->load->library('pagination');

        $config['base_url'] = 'http://localhost/admin/index.php/survay';
        $config['total_rows'] = $this->db->get('save_survay')->num_rows();
        $config['per_page'] = 1;
        $config['num_links'] =20;

        $this->pagination->initialize($config);

        $data['records'] = $this->db-get('save_survay', $config['per_page'], $this->uri->segment(3));
        $this->load->view('survay_view', $data);
    } 
}
?>
4

2 に答える 2

4

コントローラーで、$this->load->view...行の前にこれを行う必要があります:

$data['pagination'] = $this->pagination->create_links();

ビューでは、次のように置き換えecho $this->pagination->create_links()ます

echo $pagination;

アップデート

出典:以下のJeemusuのコメントを参照してください

2 つのコントローラー メソッドで同じビューを使用しており、1 つのビューにページネーションを追加していないという部分を見逃していました。

したがって、単に追加する代わりに、echo $pagination;これを追加する必要があります。

// check if $pagination variable is existing
if (isset($pagination))
{
    echo $pagination;
}
于 2013-02-14T07:42:58.627 に答える
0

ページネーションライブラリを自動ロードする必要があります...関数にロードするだけでは不十分です。

于 2015-09-11T07:49:24.800 に答える