我正在为我的网站设置分页功能我正在使用 Codeigniter 并且我不断收到一条错误消息,我无法修复它让我的头部受伤:D可以让我看看我的代码并告诉我哪里出错了。我只是一个大人物。
错误为Undefined property: CI_Loader::$pagination
,Fatal error: Call to a member function create_links() on a non-object in C:\....
tnx为您的帮助
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);
}
}
?>
答案 0 :(得分:4)
在你的控制器中,在$this->load->view...
行之前你应该这样做:
$data['pagination'] = $this->pagination->create_links();
并在视图中,将echo $this->pagination->create_links()
替换为
echo $pagination;
<强>更新强>
来源:请参阅下面的Jeemusu评论
我错过了这个部分,你在两个控制器方法中使用相同的视图,并且你没有在一个视图中添加分页。
所以,不要只添加echo $pagination;
,而应添加:
// check if $pagination variable is existing
if (isset($pagination))
{
echo $pagination;
}
答案 1 :(得分:0)
你需要自动加载分页库...只是在函数中加载它不会。