1

我正在尝试使用多个搜索条件实现分页。假设我有学生表。当显示学生列表时,我也使用分页。分页链接是。site_url . '/student/page/';所以我用$config['uri_segment'] = 1; 所以分页链接将是

<a href="http://mysite/index.php/student/page/0">1</a>
<a href="http://mysite/index.php/student/page/1">2</a>

和儿子。

之后,我想使用使用文本字段实现的 3 个搜索条件来搜索学生数据。

id  name    address.

用户可以通过 id 或 name 或 address 或三个条件的组合进行搜索。网址变成

http://mysite/index.php/student/page/0
href=http://mysite/index.php/student/page/1

和儿子。

但我使用 get 方法进行搜索。并且在尝试使用搜索条件字段进行搜索时,网址变为

href="http://mysite/index.php/student/page/1?id=1&name=a&address=b

当我尝试根据标准创建分页时出现问题。因为分页链接包含查询字符串我不知道如何创建成为

href="http://mysite/index.php/student/page/0?id=1&name=a&address=b
href="http://mysite/index.php/student/page/1?id=1&name=a&address=b

或者你有解决这个问题的最佳实践吗?


嗨菲尔....我已经尝试了你的建议。

$array = array('id' => '001', 'name' => 'a', 'address' => 'canada');

网址变成 id/001/name/a/address/canada. 我使用$this->uri->uri_to_assoc()函数来获取段的键和值。

array (
    id => 001,
    name=>a,
    address=>canada
)

但是虽然有一些搜索条件不包括在搜索中。比方说,用户只按姓名和地址搜索。数组变成 $array = array('id' => '', 'name' => 'a', 'address' => 'canada');和 url id/name/a/address/canada assoc 数组变成

array (
    id => name,
    a=>address,
    canada=>
)

assoc 数组不再杂乱无章。所以我无法获得 assoc 数组的正确值。如果不包括在内,我想我会将标识符设置为搜索条件。应该是我放#的。

if isset($_GET['id']) then
$id = '#'
else 
$id = $_GET['id']

$array = array('id' => $id, 'name' => 'a', 'address' => 'canada');

那个怎么样 ... ?或者是否还有其他最佳做法?

4

2 回答 2

1

为此,我会使用 $this->uri->uri_to_assoc():

index.php/user/search/name/joe/location/UK/gender/male

使用此函数,您可以将 URI 转换为具有此原型的关联数组:

[array]
(
    'name' => 'joe'
    'location' => 'UK'
    'gender' => 'male'
)

请参阅此处的完整文档。

您仍然可以使用 page/1 作为第一批,然后使用 /name/whatever 。

于 2010-01-21T15:31:47.607 回答
0

实际上,我们可以创建具有多个和无限标准的分页。在这里阅读http://dengkul.com/2010/07/08/codeigniter-pagination-with-multiple-unlimited-searching-criteria/

于 2010-07-08T07:43:04.630 回答