gpt4 book ai didi

php - 使用 CodeIgniter 分页时丢失 URI 段

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:06 25 4
gpt4 key购买 nike

我有一个/payments 界面,用户应该能够通过价格范围、银行和其他内容进行过滤。这些过滤器是标准的选择框。当我提交过滤器表单时,所有发布数据都会转到另一种称为付款/搜索的方法。该方法执行验证,将发布值保存到 session flashdata 中,并将用户重定向回/payments,通过 URL 传递 flashdata 名称。

所以我没有过滤器的标准分页链接是这样的:

payments/index/20/
payments/index/40/
payments/index/60/

如果您提交过滤器表单,返回的 URL 是:

payments/index/0/b48c7cbd5489129a337b0a24f830fd93

这很好用。如果我将零更改为其他内容,它会很好地分页。然而,唯一的问题是 << 1 2 3 4 >> 页面链接不会在分页偏移量后保留哈希值。 CodeIgniter 正在生成忽略该附加 uri 段的页面链接。

我的 uri_segment 配置已经设置为 3:

$config['uri_segment'] = 3;

我无法将 uri_segment 设置为 4,因为该哈希可能存在也可能不存在。关于如何解决这个问题的任何想法? CI 是否必须将偏移量作为 uri 中的最后一段?也许我正在尝试一种不正确的方法,所以我洗耳恭听。

谢谢大家。

编辑:您可能会问,为什么我要通过 uri 传递闪存数据名称?因为它允许用户打开多个浏览器选项卡并在每个选项卡中进行不同的搜索。对于您执行的每个过滤,都会生成一个新的闪存数据变量。

最佳答案

仅针对来自 Google 的用户,这里是解决方案:

在分页配置数组中,我为此更改了我的 base_url:

$config['base_url'] = site_url('payments/index/' . $this->uri->segment(3) . '/' . $this->uri->segment(4));

其中 segment(3) 是我的偏移量,而 segment(4) 是散列。因此,在这种情况下,哈希可能存在也可能不存在,分页仍然有效。

另一种方法可能是这样的:如果您转到付款,并且 URL 中没有 flashdata ID,它会将用户重定向到付款/搜索并创建一个带有空过滤器的空数组。然后它重定向回 payments/_NEW_FLASHDATA_ID_HERE_。这样,URL 将始终在 URL 中具有 flashdata ID,并且您可以像往常一样在最后一个 URI 段中具有分页偏移量。

关于php - 使用 CodeIgniter 分页时丢失 URI 段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3020227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com