【发布时间】:2012-02-21 17:19:02
【问题描述】:
我似乎遇到了非常烦人的问题,我找到了一个出色的分页脚本,但它给我带来的只是麻烦,尽管设置时间很长,但我让它的工作标准正常,但是脚本没有似乎不明白我要控制“ipp”。
// PAGINATOR \\
var $items_per_page;
var $items_total;
var $current_page;
var $num_pages;
var $mid_range;
var $low;
var $limit;
var $return;
var $default_ipp = 5;
var $querystring;
var $ipp_array;
var $html;
function Paginator()
{
$this->current_page = 1;
$this->mid_range = 7;
$this->ipp_array = array(10,25,50,100,'All');
}
function paginate($html)
{
if(!isset($_GET['ipp']))
{
$this->items_per_page = $this->default_ipp;
} else {
$this->items_per_page = $_GET['ipp'];
}
if($_GET['ipp'] == 'All')
{
$this->num_pages = 1;
$this->items_per_page = $this->default_ipp;
}
else
{
if(!is_numeric($this->items_per_page) OR $this->items_per_page <= 0) $this->items_per_page = $this->default_ipp;
$this->num_pages = ceil($this->items_total/$this->items_per_page);
}
if(!isset($_GET['page']) OR $_GET['page'] == '')
{
$this->current_page = 1; // must be numeric > 0
} else {
$this->current_page = (isset($_GET['page'])) ? (int) $_GET['page'] : 1 ; // must be numeric > 0
}
$prev_page = $this->current_page-1;
$next_page = $this->current_page+1;
if($_GET)
{
$args = explode("&",$_SERVER['QUERY_STRING']);
foreach($args as $arg)
{
$keyval = explode("=",$arg);
if($keyval[0] != "page" And $keyval[0] != "ipp") $this->querystring .= "&" . $arg . $html;
}
}
请注意,以上是完整编码的片段,你可以在这个地址找到完整的编码副本:http://net.tutsplus.com/tutorials/php/how-to-paginate-data-with-php
好的,所以我遇到的问题是我通过 _GET['ipp'] 传递给变量 ipp 的任何内容,它似乎完全忽略了,但是回显 _GET['ipp'] 效果很好..
例如 news.php?page=2&ipp=5&id=3。当我将 IPP 从 5 更改为另一个数字时,它会完全忽略我已经这样做并将 IPP(每页项目数)保持在 5 的事实吗?我现在对脚本感到非常困惑,这正是我正在寻找的,但似乎并没有按照我的方式工作。
感谢您提供任何潜在的帮助者,并感谢您的关注。
最好的问候
【问题讨论】:
-
你有没有试过把这行注释掉看看是不是问题?
if(!is_numeric($this->items_per_page) OR $this->items_per_page <= 0) $this->items_per_page = $this->default_ipp; -
你好汉克,我确实注释掉了那行代码,它完全没有做任何事情,只是在脚本后面引起了问题!
标签: php pagination