一个分页类,只是有上一页,下一页很不好,加了个 跳到第X页的功能,但写后总是转到了主页里默认页面的第几页,而不是正在浏览页面的第几页,
函数如下;
class Pager{

private $count;// 条目总数
private $num ;//每页显示条数目
private $page;// 当前页码
private $pgcou;//总页数
private $url;//链接地址
function __construct($count,$num,$page,$url){
$this->count=$count;
$this->num = $num;
$this->page = $page;
$this->url=$url;
if(($this->count%$this->num)==0){
$this->pgcou=intval($this->count/$this->num);
}elseif(($this->count%$this->num)!=0){
$this->pgcou=intval(($this->count)/$this->num)+1;
}

if($this->page<1){
$this->page=1;
}
if($this->page>$this->pgcou){
$this->page=$this->pgcou;
}
}
function getfir(){//开始查询处
return ($this->page-1)*$this->num;
}
function getlaspage(){//尾页
return $this->pgcou;
}
function getdata(){
$this->data='<div style=" width:350px;float:right ;padding-top:8px">
当前页数['.$this->page.'/'.$this->pgcou.']&nbsp;
<a href="'.$this->url.'1">[首页]</a>&nbsp;
<a href="'.$this->url.($this->page-1).'">[上一页</a>]&nbsp;
<a href="'.$this->url.($this->page+1).'">[下一页]</a>&nbsp;
<a href="'.$this->url.$this->pgcou.'">[尾页]</a></div>
<div style="width:150px; float:right;">
<form name="pgform" action="'.$this->url.'" method="get" >//主要是这里
跳到第<input type="text" name="page" size="2" />页
<input type="submit"  name="junpage" value="GO"/>
</form>
</div>';
return $this->data;
}

}

解决方案 »

  1.   

    你在URL传递时应该加上页面传递的参数,不然就会跳转到默认的主页了!<form name="pgform" action="'.$this->url.'?你分页的页面参数" method="get" >//看看你传递是否忘了什么参数 <input type="text" name="page" size="2" /> 
    <input type="submit"  name="junpage" value="GO"/> 
    </form> </div>'; 
      

  2.   

    楼上的
    当然了,url就是一个链接地址参数,我的语句是'index.php?action=message&page='
    主页是跟椐action值来加载相关的页面,但我用跳到X页时,就转到了默认页面,而不是我相要的message页面.
    似乎<from>的'get'传递只是传了page值,而url值没有传过去.
    我的意想值是在 index页面收到的url为index.php?action=message&page=2,从而跳到message的第二页.
    但结果就不是
      

  3.   

    用javascript实现<form name="pgform" action="'.$this->url.'" method="get" >//主要是这里 
    跳到第 <input type="text" name="page" size="2" />页 
    <input type="submit"  name="junpage" value="GO"/> 
    </form> 改成
    <form name="pgform" >
    跳到第 <input type="text" name="page" size="2" />页 
    <input type="button"  name="junpage" value="GO" onclick="window.location.href=\''.$this->url.'document.pgform.page.value\'"/> 
    </form> 
      

  4.   

    谢谢楼上的,
    我后来也用JS
    function getdata(){
    $this->data='<script style=javascript>
    function go(){
    var pg=document.pgform.page.value;
    ul="'.$this->url.'"+pg;
    document.forms["pgform"].action=ul;
    document.pgform.submit();}</script>
    <div style="width:150px; float:right;">
    <form name="pgform" action="" method="post" onsubmit="javascript:go()" >
    跳到第<input type="text" name="page" size="2" />页
    <input type="submit"  name="junpage" value="GO" />
    </form></div><div style=" width:350px;float:right ;padding-top:8px;float:right">
    当前页数['.$this->page.'/'.$this->pgcou.']&nbsp;
    <a href="'.$this->url.'1">[首页]</a>&nbsp;
    <a href="'.$this->url.($this->page-1).'">[上一页</a>]&nbsp;
    <a href="'.$this->url.($this->page+1).'">[下一页]</a>&nbsp;
    <a href="'.$this->url.$this->pgcou.'">[尾页]</a></div>';
    return $this->data;
    }