【问题标题】:How to Codeigniter Pagination to update specific part of a page如何使用 Codeigniter 分页来更新页面的特定部分
【发布时间】:2016-06-15 04:22:41
【问题描述】:

我的视图中有 3 个部分,当用户选择必须仅刷新分页 div 的另一个页面链接时,我希望更改视图的一部分。我在 Codeigniter 中的简单分页代码如下,并且运行良好。

控制器:home.php

<?php
class Home extends CI_Controller {


 public function __construct() {
       parent::__construct();
        $this->load->model('MovieModel');
        $this->load->library('pagination');
    }


 public function index($offset=0){

  $config['total_rows'] = $this->MovieModel->totalMovies();

  $config['base_url'] = base_url().'/home/index';
  $config['per_page'] = 5;
  $config['uri_segment'] = '3';

  $config['full_tag_open'] = '<div class="pagination"><ul>';
  $config['full_tag_close'] = '</ul></div>';

  $config['first_link'] = '« First';
  $config['first_tag_open'] = '<li class="prev page">';
  $config['first_tag_close'] = '</li>';

  $config['last_link'] = 'Last »';
  $config['last_tag_open'] = '<li class="next page">';
  $config['last_tag_close'] = '</li>';

  $config['next_link'] = 'Next →';
  $config['next_tag_open'] = '<li class="next page">';
  $config['next_tag_close'] = '</li>';

  $config['prev_link'] = '← Previous';
  $config['prev_tag_open'] = '<li class="prev page">';
  $config['prev_tag_close'] = '</li>';

  $config['cur_tag_open'] = '<li class="active"><a href="">';
  $config['cur_tag_close'] = '</a></li>';

  $config['num_tag_open'] = '<li class="page">';
  $config['num_tag_close'] = '</li>';


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


  if($this->uri->segment(3))
  {
    $offset = $this->uri->segment(3);
  }
  else 
  {
     $offset = 0;


  }

  $query = $this->MovieModel->getMovies(5,$offset); 

  //$query = $this->MovieModel->getMovies(5,$this->uri->segment(3));

  $data['MOVIES'] = null;

  if($query){
   $data['MOVIES'] =  $query;
  }

  $this->load->view('index1.php', $data);
 }
}
?>

MovieModel.php

<?php
class MovieModel extends CI_Model {


 function getMovies($limit=null,$offset=NULL){
  $this->db->select("MOVIE_ID,FILM_NAME,DIRECTOR,RELEASE_YEAR");
  $this->db->from('trn_movies');
  $this->db->limit($limit, $offset);
  $query = $this->db->get();

  return $query->result();
 }

 function totalMovies(){
  return $this->db->count_all_results('trn_movies');
 }
}
?>

index1.php

<!DOCTYPE html>
 <html lang="en">
  <head>
   <title>Codeigniter Pagination Example</title>
   <link href="<?=base_url();?>css/bootstrap.css" rel="stylesheet">
  </head>
  <body>
   <div class="container">
    <div class="row">
     <div class="col-md-12">
      <div class="row">

       <h4>Movies List</h4>
       <table class="table table-striped table-bordered table-condensed">
        <tr><td><strong>Movie Id</strong></td><td><strong>Film Name</strong></td><td><strong>Director</strong></td><td><strong>Release Year</strong></td></tr> 
        <?php 
        if(is_array($MOVIES) && count($MOVIES) ) {
         foreach($MOVIES as $movie){     
        ?>
        <tr><td><?=$movie->MOVIE_ID;?></td><td><?=$movie->FILM_NAME;?></td><td><?=$movie->DIRECTOR;?></td><td><?=$movie->RELEASE_YEAR;?></td></tr>     
           <?php 
         }        
        }?>  
       </table>            
      </div>
     </div>
    </div>
    <div class="row">
              <div class="col-md-12">
      <div class="row"><?php echo $this->pagination->create_links(); ?></div> 
     </div>
    </div>
   </div>    
  </body>
 </html> 

【问题讨论】:

    标签: php jquery codeigniter pagination codeigniter-2


    【解决方案1】:

    这不能仅在 PHP 中完成。

    您必须使用 AJAX 来更新页面上的部分。

    建议的方法是:

    1. 使用 jQuery 检测按钮点击。
    2. 向您的 Codeigniter 后端发送请求。
    3. jQuery 检测成功,使用后端打印的数据更新前端的容器。

    见:http://blog.teamtreehouse.com/beginners-guide-to-ajax-development-with-php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 2021-12-17
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多