1

我有以下代码,我从教程中修改了

但问题是,我无法在我的视图页面中正确显示结果..

如果我在控制器中显示数组,那么它可以正常工作,但在视图中,它会抛出错误..

<?php
class test extends CI_Controller {

    public function index($start = 0) {
            $this->load->model('pages_model');
            $data_page=$this->pages_model->get_pages();


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

    $config['base_url']   = base_url().'test/index';
    $config['total_rows'] = count($data_page);
    $config['per_page']   = 5;

    $data['user'] = array();

    for($i=$start; $i<$start+$config['per_page']; $i++) 
    {
      if (isset($data_page[$i])) {
        $data['user'] = $data_page[$i];





      }
    }
    //print_r($data['user']['page_id']); // this line displays 3, since the tupple with id 3 has maximum priority 5

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

    if ($this->input->post('ajax')) {
      $this->load->view('test', $data);
    } else {
      $this->load->view('test', $data);
    }
  }



}

?>

现在是模型

<?php
class pages_model extends CI_Model{
    function __construct() {
        parent::__construct();
    }
function get_pages()
    {
        return $this->db->query("SELECT * FROM td_pages ORDER BY page_priority ASC")->result_array();
    }
}
?>

最后是视图

<!DOCTYPE html>
<html>
<header>
  <title>CodeIgniter Ajax Jquery Pagination</title>
  <script src="<?php echo base_url(); ?>assets/front_assets/js/jquery-1.7.1.min.js"></script>
  <script>
  $(function() {
    applyPagination();

    function applyPagination() {
      $("#ajax_paging a").click(function() {
        var url = $(this).attr("href");
        $.ajax({
          type: "POST",
          data: "ajax=1",
          url: url,
          beforeSend: function() {
            $("#content").html("");
          },
          success: function(msg) {
            $("#content").html(msg);
            applyPagination();
          }
        });
        return false;
      });
    }
  });
  </script>
</header>
<body>

<div id="content">
  <div id="data">
    <?php foreach($page_frag as $ut)
    {?>
        <div><?php echo $ut['page_slug'];?></div>
    <?php } ?>
  </data>

  <div id="ajax_paging">
    <?php echo $pagination; ?>
  </div>
</div>
</div>
</body>
</html>

问题是视图以错误的方式显示结果,但如果我在控制器中显示,那么它表明控制器中的数组工作正常......

请帮我解决问题

4

2 回答 2

1

您正在 ajax 请求中加载整个视图,其中还包含正文和头部文本,创建一个包含以下内容的单独视图并将其加载到您的 ajax 请求中。

<div id="data">
    <?php foreach($page_frag as $ut)
    {?>
        <div><?php echo $ut['page_slug'];?></div>
    <?php } ?>
</div>
于 2012-12-29T12:09:30.983 回答
0

你在做什么是错误的

分页意味着不仅从客户端卸载服务器的处理能力/内存。

您正在提取所有结果,然后对它们进行分页,同时您应该要求 MySQL 为您分页并有第二个查询来为您提供使用它的结果数量。

如果您的链接中有 index.php,那么您必须使用 site_url() 而不是 base_url() &请注意,两者都接受一个参数,因此您不需要像这样连接它:

site_url('test/index');

codeigniter 使用 GET 方法,而在您的 javascript 代码中,您使用的是 POST。

一种更简单的方法是捕获分页 li > a 分页标签并在容器内处理它。

于 2012-12-29T15:26:57.553 回答