ホームページ > php教程 > php手册 > phpページングクラス拡張コード

phpページングクラス拡張コード

WBOY
リリース: 2016-06-13 12:23:29
オリジナル
1092 人が閲覧しました

もともとデータベースから分離したページング クラスを公開していましたが、最近それを使用したところ、検索項目が大きすぎる場合に URL を使用してパラメーターを渡すと特定の効果や既知のバグが発生する可能性があることがわかりました。これは拡張されており、以前のモードと互換性があります。コードをもう 1 つ設定するだけで済みます。

コードをコピーします。 🎜> コードは次のとおりです:


/**
* 機能: 提供されたデータの総量とページ サイズに基づくページネーション クラス
* 作成日: Fri Apr 20 16:45:21 CST 2007
* 最終更新日:
* 著者:サンシ
*/

クラスのページネーション
{
var $result = array()
var $pVar; = "myp";//ページパラメータページングカウント
var $urlParamStr = ""; //ページのすべてのパラメータ
var $sqlMoveNumber = 0; //データオフセット
var $is_post = false;

public function pagination()
{

}
public function set($sum,$pageSize,$page="",$is_post = false)
{
$this->is_post = $is_post;
$this->pVar = 定義('PAGE_BAR') ? PAGE_BAR : 'myp' ;
$url = $_SERVER['PHP_SELF ']。 '?' $ _ server [query_string ']; $temp['nextPage'] = $temp['sumPage'] > $curPage ? ($curPage 1) : $temp['sumPage'];
$temp['upPage'] = $curPage > ? $curPage-1 :1;
$temp['endPage'] = $temp['sumPage'];
$this->urlParamStr = $this->_makeUrl($url); > $temp['urlPageStr'] = ($page=="") $this->_makeUrl($url) : $page .$this->
$this-> sqlMoveNumber = $curPage $temp['sqlMoveNumber'] = $this->sqlMoveNumber; sum;
$this->result = $temp;
return $this->result; // print_r($temp);exit();
}
getSqlMove()
{
return $this->sqlMoveNumber;
}
public function getFooter()
{ result['urlPageStr']}{$this->result[' upPage']}'";
if($this->is_post) $str .=" onclick='return sanshi_page_post(this.href, {$this->result['upPage']});' ";
$str .=" >前のページ ";
$str .=" 現在の {$this ->result['curPage']} ページ";
$str .=" {$this->result['sumPage']} ページがあります";
$str .=" result['nextPage']}'";
if($this->is_post) $str .=" onclick= 'return sanshi_page_post(this.href,{$this->result[' nextPage']});' ";
$str .=" >次のページ
";
$str; 'toppage' size='1' onchange='sanshi_page_post("{$this ->result['urlPageStr']}" this.value,this.value)'>n";else{
$str = " 跳到第 页";
//出力形式表单
if($this->is_post)
{
$str .="";
$str .="

";
$str .="";
$_POST = isset($_POST) ? $_POST : 配列();
foreach($_POST AS $k=>$v)
{
$str .="";
}
$str .="
";
}
return $str;
}
public function getCurPage()
{
return isset($_GET[$this->pVar]) ? intval($_GET[$this->pVar]) : 1 ;
}
//分析出力urlのパラメータが返されますか?後のパラメータ、页码は空を含む问号
private function _makeUrl($url)
{
$arrayUrl=parse_url($url);
if(isset($arrayUrl['query']))
{
$q=$arrayUrl['query'];
parse_str($q,$qParam);
//print_r($qParam);
if(array_key_exists($this->pVar,$qParam))
{
foreach ($qParam AS $k=>$v)
{
if($k ! =$this->pVar) $temp[$k] = $v;
}
$temp[$this->pVar] = "";
if(function_exists("http_build_query"))
return '?'.http_build_query($temp);
else
return '?'.sanshi_http_build_query($temp);
}else {
return "?{$q}&{$this->pVar}=";
}
}else{
return "?{$this->pVar}=;
}

}
}
function sanshi_http_build_query($a,$b='',$c=0)
{
if (!is_array($a) ) false を返します。
foreach ((array)$a as $k=>$v)
{
if ($c)
$k=$b."[".$k."]" ;
elseif (is_int($k))
$k=$b.$k;
if (is_array($v)||is_object($v))
{
$r[]=http_build_query($v,$k,1);
続けます。
}
$r[]=$k."=".urlencode($v);
}
return implode("&",$r);
}
/*
//print_r($_SERVER);
$p = 新しいページネーション();
$p->set(10,2,'thi.php');
echo $p->getFooter();
echo $p->getJumpPage();
*/
?>

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート