【问题标题】:problem with pagination?分页问题?
【发布时间】:2011-10-26 20:02:16
【问题描述】:

我使用了codeigniter

为什么不能在我的代码中使用 $this->pagination->create_links()
问题 1:我有这个错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: offset

Filename: admin/accommodation.php

Line Number: 45

问题2:点击$this->pagination->create_links()后,更改url,但不更改内容表。我使用XAMPP p>

我该怎么办?

我的代码:

function show() 
    {       
        // load pagination class
    $this->load->library('pagination');
    $config['base_url'] = base_url().'admin/accommodation/show';
    $config['total_rows'] = $this->db->count_all('hotel_submits');
    $config['per_page'] = '2';

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

    $offset = (int) $offset; // just to make sure nothing funky gets in here
    $data['results'] = $this->db->query("SELECT @rownum:=@rownum+1 rownum, t.* ".
        "FROM (SELECT @rownum:=0) r, hotel_submits t ".
        "ORDER BY id desc LIMIT $offset, 2");

        $this->load->view('admin/accommodation_submit_show', $data);   
    }

尊重

【问题讨论】:

  • $config['base_url'] = base_url().'admin/accommodation/show'; 是什么意思?你的控制器叫什么名字?
  • 你从哪里得到$offset$offset = (int) $offset; 指的是不可用的变量(右侧)。

标签: php codeigniter pagination


【解决方案1】:

您在未定义的查询中使用的变量$offset。您必须将其作为方法参数传入,或使用$this->uri->segment(n)

你看过我在create jquery pagination?上的回答吗

您必须将 $offset 传递给您的方法:

function show($offset = 0) 
{
    // code goes here
}

我假设您在名为“admin”的文件夹中安装了 Codeigniter,并且您的控制器名称为“accommodation”。在这种情况下,您必须像这样设置$config['base_url']

$config['base_url'] = 'accommodation/show';

编辑:

如果 admin 不是您安装 Codeigniter 的文件夹,而是您的 controllers 文件夹中的一个文件夹,其中包含 accommodation 控制器在其中,那么您将不得不使用它:

$config['base_url'] = 'admin/accommodation/show';
$config['uri_segment'] = 4;

【讨论】:

  • 我认为您对$config['base_url'] 有一个错误,OP 的$config['base_url'] 已经正确(尽管不需要base_url())。不过,您肯定需要 admin 段。不确定 jquery 与此有什么关系。 $offset 部分 +1,其余部分 -1。
  • @Wesley:如果他正确设置了 Codeigniter(我假设他这样做了,也许我错了),他在配置文件中的 base_url 应该包括他 url 的“admin”部分:@ 987654333@。至于 jQuery:如果你看一下那个问题,你会看到他从我的答案中复制了所有代码,但后来搞砸了。这就是为什么我问他是否读过它,因为我认为我已经在那里解释得足够透彻了......
  • 好的,我明白了你对$config['base_url'] 的假设,尽管 OP 很可能在/controllers 中使用路由或子目录作为/admin 部分,而不是让整个安装成为在admin 目录中。人们懒得去阅读 PHP 或 CI 吐出的错误信息,或者懒得去了解“未定义的变量”是什么意思,这有点令人遗憾。定义偏移量可能是唯一的问题。不管怎样,在提问之前应该已经解决了。
  • 哦,是的,我现在看到了:OP 从另一个问题复制/粘贴代码很奇怪。除非他们是同一个用户,否则根本没有意义。
猜你喜欢
  • 2013-01-03
  • 2011-03-25
  • 2012-09-03
  • 2011-04-17
相关资源
最近更新 更多