ホームページ > バックエンド開発 > PHPチュートリアル > 同じページ上にページ分割が必要な 2 つのテーブルがあります。同じページング クラスをインスタンス化したときに問題が発生しました。

同じページ上にページ分割が必要な 2 つのテーブルがあります。同じページング クラスをインスタンス化したときに問題が発生しました。

WBOY
リリース: 2016-06-23 14:21:51
オリジナル
1110 人が閲覧しました

ページング PHP データ

同じページに 2 つのテーブルがあり、どちらもページ分割する必要があります。ページング クラスがあり、両方のテーブルでこのクラスがインスタンス化されていますが、ページをめくった後に問題が発生しました。データがありません。なぜですか。こんなことは起こるでしょうか?
次のようにインスタンス化しました:
最初のテーブルの場合:
$my_page1=new PageClass($total1,20,$_GET['page'],'?account='.$_SESSION['account'].'&act=wyxx&page={page}');
ログイン後にコピー

2 番目のテーブルの場合:
$my_page2=new PageClass($total2,20,$_GET['page'],'?account='.$_SESSION['account'].'&act=blnr&page={page}');
ログイン後にコピー

ページング クラスは次のようになります:
class PageClass{private $myde_count;       //总记录数public $myde_size;        //每页记录数private $myde_page;        //当前页private $myde_page_count; //总页数private $page_url;         //页面urlprivate $page_i;           //起始页private $page_ub;          //结束页public $page_limit;function __construct($myde_count=0,$myde_size=1,$myde_page=1,$page_url)//构造函数{      $this->myde_count=$this->numeric($myde_count);   $this->myde_size=$this->numeric($myde_size);   $this->myde_page=$this->numeric($myde_page);   $this->page_limit=($this->myde_page * $this -> myde_size) - $this -> myde_size; //下一页的开始记录    $this->page_url=$page_url; //连接的地址     if($this->myde_page<1)$this->myde_page=1; //当前页小于1的时候,,值赋值为1    if($this->myde_count<0)$this->myde_page=0;     $this->myde_page_count=ceil($this->myde_count/$this->myde_size);//总页数     if($this->myde_page_count<1)    $this->myde_page_count=1;     if($this->myde_page>$this->myde_page_count)      $this->myde_page=$this->myde_page_count;     //$this->page_i=$this->myde_page-2;   $this->page_i=$this->myde_page-2;          $this->page_ub=$this->myde_page+2;         //$this->page_ub=$this->myde_page+2;          if($this->page_i<1)$this->page_i=1;                if($this->page_ub>$this->myde_page_count){$this->page_ub=$this->myde_page_count; }}      private function numeric($id) //判断是否为数字    { if (strlen($id)){       if (!ereg("^[0-9]+$",$id)) $id = 1;    }else{    $id = 1;   }   return $id;} private function page_replace($page) //地址替换{return str_replace("{page}", $page, $this -> page_url);} private function myde_home() //首页{ if($this -> myde_page != 1){      return "    <li class=\"page_a\"><a href=\"".$this -> page_replace(1)."\" title=\"首页\" >首页</a></li>\n";      }else{      return "    <li>首页</li>\n";      }} private function myde_prev() //上一页{ if($this -> myde_page != 1){      return "    <li class=\"page_a\"><a href=\"".$this -> page_replace($this->myde_page-1) ."\" title=\"上一页\" >上一页</a></li>\n";   }else{      return "    <li>上一页</li>\n";      }} private function myde_next() //下一页{ if($this -> myde_page != $this -> myde_page_count){       return "    <li class=\"page_a\"><a href=\"".$this -> page_replace($this->myde_page+1) ."\" title=\"下一页\" >下一页</a></li>\n";       }else{      return "    <li>下一页</li>\n";      }} private function myde_last() //尾页{   if($this -> myde_page != $this -> myde_page_count){       return "    <li class=\"page_a\"><a href=\"".$this -> page_replace($this -> myde_page_count)."\" title=\"尾页\" >尾页</a></li>\n";       }else{      return "    <li>尾页</li>\n";      }} function myde_write($id='page') //输出{   $str = "<div id=\"".$id."\" class=\"pages\">\n <ul>\n ";     $str .= " <li>总记录:<span>".$this -> myde_count."</span></li>\n";     $str .= "    <li><span>".$this -> myde_page."</span>/<span>".$this -> myde_page_count."</span></li>\n";     $str .= $this -> myde_home();     $str .= $this -> myde_prev();   for($page_for_i=$this->page_i;$page_for_i <= $this -> page_ub; $page_for_i++){      if($this -> myde_page == $page_for_i){               $str .= "    <li class=\"on\">".$page_for_i."</li>\n";        }       else{        $str .= "    <li class=\"page_a\"><a href=\"".$this -> page_replace($page_for_i)."\" title=\"第".$page_for_i."页\">";         $str .= $page_for_i . "</a></li>\n";        }        }   $str .= $this -> myde_next();     $str .= $this -> myde_last();     $str .= "    <li class=\"pages_input\"><input type=\"text\" value=\"".$this -> myde_page."\"";     $str .= "onmouseover=\"javascript:this.value='';this.focus();\" onkeydown=\"javascript: if(event.keyCode==13){ location='";     $str .= $this -> page_replace("'+this.value+'")."';return false;}\"";     $str .= " title=\"输入您想要到达的页码,然后回车!\" /></li>\n";     $str .= " </ul></div>";   return $str;}}/*-------------------------实例--------------------------------*$page = new PageClass(1000,5,$_GET['page'],'?page={page}');//用于动态$page = new PageClass(1000,5,$_GET['page'],'list-{page}.html');//用于静态或者伪静态$page -> myde_write();//显示*/
ログイン後にコピー

ディスカッション (解決策) への返信

あなたはそれを取得しているかもしれません。 $_GET['page'],
$_GET['page1'],$_GET['page2'] の 2 つになります

パラメータを渡して出力して確認します。大きな問題はありません。

AJAX を使用して、 paginate

一般的なページでは 2 つのページングを見かけることはまれですが、それを実装したい場合は、ajax ページングを使用してください。

ページングを実装する際に送信する必要があるパラメータを保存し、クラスをインスタンス化し、保存したパラメータを呼び出します。

2 つのページングパラメータは両方とも $_GET['page'] ですが、PHP はどのようにしてそれらを識別できるのでしょうか? PHP はページングクラスを使用する前にバックグラウンドで適切な判断を行います

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