php分页器的问题

Posted

技术标签:

【中文标题】php分页器的问题【英文标题】:Problem with php pager 【发布时间】:2010-12-04 21:05:36 【问题描述】:

我在 php 中为我的项目制作了一个带有寻呼机的简单表格类。如果页面地址不包含GET 方法传递的任何参数,它就可以正常工作。这是我用寻呼机创建表格的方式

$tbl = new table();
$tbl->headers(array ("Header1", "Header2"));
$query = "SELECT COUNT(*) FROM table";
$tbl->pager(15, $query);           
$tbl->page = $_SERVER['PHP_SELF'];
$query = "SELECT id, name, FROM table";
$tbl->createTable($query);

我想在switch函数中使用它

switch ($_GET['a']) 
        case b:
            $tbl = new table();
            $tbl->headers(array ("Header1", "Header2"));
            $query = "SELECT COUNT(*) FROM table";
            $tbl->pager(15, $query);

            $tbl->page = $_SERVER['REQUEST_URI'];
            $query = "SELECT id, name, FROM table";
            $tbl->createTable($query);
            break;
        case c:
            ...
            break;
    

$_SERVER['REQUEST_URI'] 会将page.php?a=b 传递给寻呼机并按应有的方式创建寻呼机。当我在页面之间切换时会出现问题,因为REQUEST_URI 每次都通过page.php?a=b + 我在寻呼机上的实际页码,所以地址看起来像pager.php?a=b&page1&page=2...。我的问题是,有没有办法只传递给寻呼机page.php?a=b 并使其不可更改或类似的东西?希望我的问题很清楚。

【问题讨论】:

$tbl->page 是不是应该独立于查询字符串来识别正在查看的 URL 的问题? 是的。在示例中,我希望它始终为page.php?a=b,但当我切换页面时,它总是向 url 添加新参数。这就是为什么我询问其他方式来传递实际页面而不在 url 中使用页码 您应该查看 ngDesk,因为它完全免费并且具有很棒的功能。你可以在这里查看ngdesk.com 【参考方案1】:

sd

function getQE()
     if($_GET) 
       // exlude some variables from $_GET (pass names of variables in function call)
       $ex = func_get_args();
       $qstr  = "?";
       foreach($_GET as $key=>$value) 
          if (!in_array($key, $ex))
              $qstr .= $key."=".$value;
              $qstr .= '&';
          
       
     
return $qstr;

在您的情况下,要获取没有“页面”的查询字符串,您应该像这样调用此函数:

$get = getQE('page');

如果您需要排除多个:

$get = getQE('page', 'section','folder');

【讨论】:

太棒了!前段时间我遇到了同样的问题,我写了这个函数......我很高兴它也对你有帮助:)

以上是关于php分页器的问题的主要内容,如果未能解决你的问题,请参考以下文章

Django 分页器的使用

分页器的使用

分页器原理

django分页器的一些思考

一个swiper 两个分页器的写法总结

自定义分页器的使用