【问题标题】:pagination link not showing the values in codeigniter,分页链接未显示 codeigniter 中的值,
【发布时间】:2013-08-12 08:32:07
【问题描述】:

每当我单击分页链接时...它显示未找到对象。我不知道如何将值传递给 {index.php/view_expenses/view&per_page=2} 这个页面。不要介意这是不是愚蠢的问题,我在 php 和 codeigniter 中只有 2 个月大。任何帮助都会很棒:D
这是我的控制器

    function view($offset=0)
    {
        $limit=5;
        $this->uri->segment(3);
        $this->load->model('emp_expenses_model');
        $result['contents']=$this->emp_expenses_model->getRows($limit,$offset);
        $result['countRows']=$this->emp_expenses_model->countRows();
        $this->load->library('pagination');
        $this->load->library('table');

        $config=array(
                    'base_url' => '/index.php/view_expenses/view',
                    'total_rows' => $this->db->get('emp_expenses')->num_rows($limit,$offset),
                    'per_page' => $limit,
                    'uri_segment' => 3,
                    'num_links' => 1,
        );   

        $this->db->limit(5);
        $this->pagination->initialize($config);
        $this->load->model('emp_expenses_model');
        $this->data['view_expenses'] = $this->emp_expenses_model->get_all();
        //var_dump($this->data['pay_list']);die("jk");
        $this->data['title'] = 'Payroll System';
        $this->data['message'] = $this->session->flashdata('message');
        $this->load->library('pagination');
        $this->load->view('view_expenses', $this->data);
        /*$this->load->view('add_list', $this->data);*/
}

这是我的模特

function getRows($limit,$offset)
{
    $query=$this->db->select('expenses_id,id,dropdown,modeofpayment,amount')
       ->from('emp_expenses')
       ->limit($limit,$offset);

    $result=$query->get()->result_array();
    return $result;
}

function countRows()
{
    $query="select count(*) as count from emp_expenses";
    $result=$this->db->query($query);
    return $result->result_array();
}

【问题讨论】:

  • 你不应该在你的控制器中使用数据库查询。而不是 'total_rows' => $this->db->get('emp_expenses')->num_rows($limit,$offset) ,应该不是 'total_rows' => $result['countRows']

标签: php codeigniter


【解决方案1】:

要创建分页 HTML,您可以调用 create_links(),然后将其与其他数据一起传递给您的视图。这将自动为您生成正确的链接。尝试将其包含在您的控制器中:

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

确保你在$this->pagination->initialize($config);之后调用它

那么在你看来:

echo $pagination;

【讨论】:

  • 创建链接不起作用,但是当我点击这些链接时,它会显示 404 错误。
  • 您可能还需要在配置中使用$config['page_query_string'] = TRUE;,因为您使用的是查询字符串而不是网址分段。
  • 我也这样做了。$config['use_page_numbers'] = TRUE; $config['page_query_string'] = TRUE;
【解决方案2】:

模型的变化:

function countRows(){
    //$query="select count(*) as count from emp_expenses";
    $result = $this->db->count_all_results('emp_expenses');
    //$result=$this->db->query($query);
    return $result;
}

在您的控制器中更改以下行,

$result['countRows']=$this->emp_expenses_model->countRows();
    $this->load->library('pagination');
    $this->load->library('table');
    $config=array(
                    'base_url' => '/index.php/view_expenses/view/',
                    'total_rows' => $result['countRows'],
                    'per_page' => $limit,
                    'uri_segment' => 3,
                    'num_links' => 1,
     );

我看到你加载了两次model,评论第二次。如果您没有在视图中加载$result['contents']=$this->emp_expenses_model->getRows($limit,$offset);,为什么还要使用它?

在您看来,请致电<?=$this->pagination->create_links()?> 以查看分页。

【讨论】:

  • 感谢 niloy 发现这些错误。但它仍然没有解决我的问题...分页不起作用:(为什么在此页面结果中没有显示 view_expenses/view&per_page=2 ?
  • 查看我的回答的评论,它可能会有所帮助。您需要为$config['page_query_string'] = TRUE; 设置一个配置变量,因为您正在使用查询字符串来获取您的 per_page 变量。
猜你喜欢
  • 2013-04-07
  • 2017-10-18
  • 2017-12-01
  • 2013-05-03
  • 2023-03-03
  • 2020-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多