// ※page_standard() 分页显示函数(标准型)
// ※GetRecordStartEnd() 获得取记录的开始结束位置
// ※getmaxpage() 获得记录集的最大页数
// ※checkpage() 检查当前页数是否在0和最大页数之间
// ※ShowRecordSet() 两维表格显示函数(调试程序之用)
//------------------------------------------------------------------------------------------
class c_ora_page
{
//------------------------------------------------------------------------------------------
// 变量定义
//------------------------------------------------------------------------------------------
var $I_pagesize = 10 ; //每页记录数
var $c_width = "90%" ; //表格宽度
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="")
// 作 用:分页显示函数(标准型)
// 参 数:$I_sumrecord 记录总数
// $C_url URL
// $C_page URL后的参数
// $C_otherpara URL后的参数2
// $bgcolor 表格的背景颜色
// 返回值:<table>
// 备 注:无
//------------------------------------------------------------------------------------------
function page_standard($I_sumrecord,$C_page,$C_url="self",$C_otherpara="",$bgcolor="")
{
//检查参数
if ((!$I_sumrecord) || (!$C_page)){AlertExit("参数不全!");}
global $PHP_SELF,$$C_page; //全局变量$C_page
//检测$I_pagesize是否合法
if($this -> I_pagesize < 1){AlertExit("请设定每页的记录数!");}
if($I_sumrecord < 1){return false;} //检测总记录数
if($C_url == "self"){$C_url = $PHP_SELF;} //设置URL
$I_page = $$C_page; //重新赋当前页值
$I_maxpage = $this -> getmaxpage($I_sumrecord); //取出总页数
$I_page = $this -> checkPage($I_maxpage,$I_page); //检查当前页号
//显示表
echo "<table align=center width=". $this -> c_width ." bgcolor=". $bgcolor .">";
echo "<tr>";
echo "<td align=left>共<font color=red><b>" . $I_sumrecord. "</b></font>条主题 当前第<font color=red><b>" . $I_page . "/". $I_maxpage. "</b></font>页</td>";
if ($I_maxpage > 1)
{
echo "<td align=right>";
if($I_page > 1 && $I_page < $I_maxpage)
{
echo "<a href= $C_url?$C_page=1&$C_otherpara>首页</a> ";
$pre=$I_page-1;
echo "<a href=$C_url?$C_page=$pre&$C_otherpara>上页</a> ";
$next=$I_page+1;
echo "<a href=$C_url?$C_page=$next&$C_otherpara>下页</a> ";
echo "<a href=$C_url?$C_page=$I_maxpage&$C_otherpara>末页</a> ";
}
elseif($I_page == 1)
{
$next = $I_page+1;
echo "<a href=$C_url?$C_page=$next&$C_otherpara>下页</a> ";
echo "<a href=$C_url?$C_page=$I_maxpage&$C_otherpara>末页</a> ";
}
elseif($I_page == $I_maxpage)
{
echo "<a href=$C_url?$C_page=1&$C_otherpara>首页</a> ";
$pre=$I_page-1;
echo "<a href=$C_url?$C_page=$pre&$C_otherpara>上页</a> ";
}
//显示select
echo "转到";
echo "<SELECT style=font-size:9pt NAME=gopage class='ff' OnChange=".WindowLocation($C_url,$C_otherpara,$C_page).">";//OnChange=".WindowLocation($C_url,$C_otherpara,$C_page)."
for($i=1;$i <= $I_maxpage;$i++)
{
//如$i==$I_page,此选项选中(selected)
if($i == $I_page){echo "<option value=$i selected>$i </option>";}
else{echo "<option value=$i>$i </option>";}
}
echo "</SELECT>页</td>";
}
echo "</tr>";
echo "</table>";
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:GetRecordStartEnd($I_page)
// 作 用:获得取记录的开始结束位置
// 参 数:$I_page 当前页
// 返回值:全局变量$I_rowstart,$I_rowend
// 备 注:无
//------------------------------------------------------------------------------------------
function GetRecordStartEnd($I_page)
{
global $I_rowstart,$I_rowend;
$I_rowstart=($I_page-1)*$this -> I_pagesize;
$I_rowend=$I_rowstart+$this -> I_pagesize;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:getmaxpage($intRecordNum)
// 作 用:获得记录集的最大页数
// 参 数:$I_sumrecord 记录总数
// 返回值:最大页数$I_maxpage(整型)
// 备 注:无
//------------------------------------------------------------------------------------------
function getmaxpage($I_sumrecord)
{
if (!$I_sumrecord){AlertExit("参数不全!");}//检查参数
$I_maxpage = ceil($I_sumrecord / $this -> I_pagesize);
return $I_maxpage;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:checkpage($I_maxpage,$I_page)
// 作 用:检查当前页数是否在0和最大页数之间
// 参 数:$I_maxpage 最大页数
// $I_page 当前页数
// 返回值:当前页数$I_page(整型)
// 备 注:无
//------------------------------------------------------------------------------------------
function checkpage($I_maxpage,$I_page)
{
if($I_maxpage==0){$I_page=$I_maxpage;return $I_page;}
if ($I_page<1){$I_page=1;}
if($I_page>$I_maxpage){ $I_page=$I_maxpage; }
return $I_page;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:ShowRecordSet($RecordSet,$Header,$width="100%")
// 作 用:两维表格显示函数(调试程序之用)
// 参 数:$RecordSet 记录集
// $Header 表头
// $width 表宽
// 返回值:table
// 备 注:无
//-----------------------------------------------------------------------------------------
function ShowRecordSet($RecordSet,$Header,$width="100%")
{
echo "<TABLE align=center border=1 width=$width>";
echo "<tr bgcolor=#A4A4D2>";
for($i=0;$i<count($Header);$i++){
echo "<td align=center>$Header[$i]</td>";
}
echo "</tr>";
for($i=0;$i<count($RecordSet);$i++){
if($i%2==0){
echo "<tr bgcolor=#cccccc>";
}
else{
echo "<tr bgcolor=#F5F5FE>";
}
$arr_cur=$RecordSet[$i];
for($j=0;$j<count($Header);$j++)
{
echo "<td align=center>".ReplaceSpecialChar($arr_cur[$j])."</td>";
}
echo "</tr>";
}
echo "</table>";
}
//--------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------
}
?>
|