我有以下代码,我从教程中修改了
但问题是,我无法在我的视图页面中正确显示结果..
如果我在控制器中显示数组然后它正常工作,但在视图中,它抛出错误..
<?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>
问题是视图以错误的方式显示结果,但是如果我在控制器中显示,那么它表明控制器中的数组工作正常...
请帮我解决问题
答案 0 :(得分:1)
您正在ajax请求中加载整个视图,该请求还包含正文和头文本,使用以下内容创建单独的视图并将其加载到您的ajax请求中。
<div id="data">
<?php foreach($page_frag as $ut)
{?>
<div><?php echo $ut['page_slug'];?></div>
<?php } ?>
</div>
答案 1 :(得分:0)
你正在做的是错误的
分页意味着不仅从客户端从服务器卸载处理能力/ RAM。
你要取消所有结果,然后将它们分页,而你应该要求MySQL为你分页。有第二个查询,为您提供使用它的结果数。
如果您的链接中有index.php,那么您必须使用site_url()而不是base_url()&amp;请注意,两者都接受一个参数,所以你不需要像你那样连接它就像这样:
site_url('test/index');
codeigniter使用GET方法,而在您的javascript代码中,您正在使用POST。
更简单的方法是抓住分页李&gt;分页和标签的标签在容器内处理它。