phpテンプレートページにおけるページングコードの解析を簡略化
3354 ワード
テンプレートを使用する場合、ページング情報を表示する際の操作が面倒で、n複数のテンプレートにページングブロックがあるという問題が発生します.
例:
---全部で20件の記録があり、現在の3/5ページのトップページの前のページの次のページの最後のページGO---
初めてこの問題に遭遇した道友は、この問題を解決することを考えている間にphpのアイデアを打っているようで、どのようにphpで実現するかを考えていますが、あなたがどのように設計しても2つの案に設計されています.
1、ネストループで実現
2、n個以上の判断でやる
しかし、最終的には面倒で、解析に使用するサーバ側のリソースです.
あなたのphpの代わりにjavascriptを使ってもいいです!!!これによりphpスクリプトのコード量を減らすことができ,解析ページングの作業をクライアント自身に任せることもできる.ただしjavascriptのデバッグは面倒かもしれません.
最も重要なのは,ページング表示を簡略化できる場合,解析テンプレートが直面する苦痛である.
次にpearをサポートするitxテンプレートツールで解析するテンプレートを用いる.
ここでは、ブロックを表す{recordcount}と同様の文字列が変数です.
----------------list.tpl---------------------
また,この方法はテンプレートを用いなくても,{recordcount}のような類似文字列を変数の値で置き換えるだけでよいページ分割ソリューションである.
例:
---全部で20件の記録があり、現在の3/5ページのトップページの前のページの次のページの最後のページGO---
初めてこの問題に遭遇した道友は、この問題を解決することを考えている間にphpのアイデアを打っているようで、どのようにphpで実現するかを考えていますが、あなたがどのように設計しても2つの案に設計されています.
1、ネストループで実現
2、n個以上の判断でやる
しかし、最終的には面倒で、解析に使用するサーバ側のリソースです.
あなたのphpの代わりにjavascriptを使ってもいいです!!!これによりphpスクリプトのコード量を減らすことができ,解析ページングの作業をクライアント自身に任せることもできる.ただしjavascriptのデバッグは面倒かもしれません.
最も重要なのは,ページング表示を簡略化できる場合,解析テンプレートが直面する苦痛である.
次にpearをサポートするitxテンプレートツールで解析するテンプレートを用いる.
ここでは、ブロックを表す{recordcount}と同様の文字列が変数です.
----------------list.tpl---------------------
// html
<!--
<br>BEGIN page -->
<br>recordCount = {recordcount};
<br>show = {showinonepage}
<br>pageCount = {pagecount};
<br>pageNow = {page};
<br>pageStr = "?page=_page_";
<br>document.write(showListPage0(recordCount, show, pageCount, pageNow, pageStr));
<br><!-- END page
<br>// -->
// 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));
function showListPage0(recordCount, show, pageCount, pageNow, pageStr){
if(pageCount<1) pageCount =0;
if(pageNow<1) pageNow = 0;
str = '";
return str;
}
function pagego0(pageGo,pageNow,pageCount,pageStr){
if(pageGo>=1 && pageGo<=pageCount && pageNow!=pageGo)
window.location = pageStr.replace("_page_", pageGo);
}
また,この方法はテンプレートを用いなくても,{recordcount}のような類似文字列を変数の値で置き換えるだけでよいページ分割ソリューションである.