分页不显示在网页上

时间:2013-02-14 09:31:44

标签: php codeigniter pagination

大家好我是CodeIgniter和PHP的新手。

我正在尝试在我的某个页面上创建分页,但由于某种原因,我的代码不会在页面上显示分页。

view.php

 </head>
   <body>


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

      <div = 'container'>


          <?php 
          if (isset($pagination))
            {
            echo $pagination;
            } 
           ?>

          <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>

control.php

<?php

class Survey 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('survey_view', $data);

           }

//pagination
        function page()
           {

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


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

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

            $data['records'] = $this->db-get('save_survey', $config['per_page'], $this->uri->segment(3));
            $data['pagination'] = $this->pagination->create_links();
            $this->load->view('survey_view', $data);

          }
    }

?>

1 个答案:

答案 0 :(得分:1)

永远不会调用函数page()

导航到控制器时,将触发默认的index()功能。在该函数中,没有调用page();方法。

之前我从未使用CI的分页内容,但是要在page()方法中包含您的分页代码(index()),您可以这样做(我从页面方法中删除了视图) ):

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;
        }

        //call your page method and set the pagination variables to this object
        $this->page();

        //show the view
        $this->load->view('survay_view', $data);
    }

    //pagination ONLY sets the pagination variables
    function page() {
        $this->load->library('pagination');

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

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

        $data['records'] = $this->db-get('save_survay', $config['per_page'], $this->uri->segment(3));
        $data['pagination'] = $this->pagination->create_links();
    }
}