PHPテンプレートページのページネーションコードの解析を簡素化する

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

テンプレートを使用すると、ページング情報を表示するのが面倒、複数のテンプレートにページングブロックが存在するなどの問題が発生します。
例:
---合計 20 レコード、現在の 3/5 ページ ホーム ページ 前のページ 次のページ 最後のページ GO-----
この問題に初めて遭遇した友人は次のとおりです。この問題を解決するとき、誰もが PHP を使用して実装する方法を考えているようですが、どのように設計しても、次の 2 つのオプションがあります: 1. ネストされたループを使用して実装する
2. n を使用する
を実行するには複数の判断が必要ですが、それでも最終的には面倒で、解析中にサーバー側のリソースが使用されます。
PHP の代わりに JavaScript を使用してみてはいかがでしょうか。 ! ! ! 、これにより、php スクリプト内のコードの量が削減され、ページングの解析作業をクライアント自体に任せることもできます。ただし、JavaScript のデバッグはさらに面倒になる場合があります。
最も重要なことは、ページネーションを表示するときにテンプレートを解析する手間を簡素化できることです。
以下は、pear をサポートする itx テンプレート ツールによって解析されたテンプレートです。
ここで、 および はブロックを表します。このような類似した文字列は変数です。
----------------list.tpl---------------

コードをコピー コードは次のとおりです:

//その他の HTML コード







//その他の HTML コード
--------page.js ------ ------
//--------------- 合計 20 レコード、現在の 3/5 ページ ホーム ページ 前のページ 次のページ 最後のページGO---- ---------------
//recordCount = 20;
//show = 20
//pageCount = 5; /pageNow = 3;
//pageStr = "?page=_page_"
//document.write(showListPage(recordCount, show, pageCount, pageNow, pageStr)); show, pageCount, pageNow , pageStr){
if(pageCountif(pageNowstr = '
' レコード数 '' pageNow '/' pageCount '
if(pageNow<=1)
ホーム" ;
else
str = " ホームページ ";
if(pageNow<=1)
str = " 前のページ";
else
str = " 前のページ ";
if(pageNow>= pageCount)
str = "次のページ";
else
str = " 次のページ ";
if(pageNow>=pageCount)
str = "最後のページ";
else
str = " 最後のページ
str = "ジャンプページ";
str = "
";
return str;
}
function pagego0(pageGo, pageNow,pageCount,pageStr){
if(pageGo>=1 && pageGo<=pageCount && pageNow!=pageGo)
window.location = pageStr.replace("_page_", pageGo );
}


さらに、このメソッドはテンプレートなしでも使用でき、{recordcount} のような同様の文字列を使用して変数の値を置き換えるだけです。

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