2012-04-11 12 views
1

私は働くために良いページャーを手に入れようとしていますが、今後のミドルネームが正しく機能するには問題があります。使い方が分かりやすい

目標は、どのページに関係なく結果セットの最初と最後の5ページを表示することですが、最初と最後の5ページは、それを許可するのに十分なページがある場合のみ表示できます。ほんの数ページと78 79 80 81 82 >>

から12 14から< < 1 2 3 4 5:<

改ページが次のようになり4 5 6 7 8 9 10 >>

そして回避する方法これは< < 1 2 3 4 5?: - 5 7 - 7 8 9 10 11 >>

を10私のコードは、これまでのところです:

function pagination_links($page, $num_rows, $results_per_page, $each_direction = 3) 
{ 
$total_pages = $num_rows ? ceil($num_rows/$results_per_page) : 1 ; 
if($total_pages < 2) 
{ 
    return null; 
} 
$page = ((is_numeric($page)) && ($page >= 1) && ($page <= $total_pages)) ? (int)$page : 1 ; 
$output = null; 
if($page > 1) 
{ 
    $output .= '<div class="pageBtn"><<</div>' ; 
} 
else 
{ 
    $output .= '<div class="pageBtnDis"><<</div>' ; 
} 

for($i=1;$i<$total_pages;$i++) 
{ 
    if($page != $i) 
    { 
     $output .= '<div class="pageBtn">' . $i . '</div>' ; 
    } 
    else 
    { 
     $output .= '<div class="pageBtnSet">' . $i . '</div>' ; 
    } 
    if($i > 4) 
    { 
     break ; 
    } 
} 

for($i = $page - $each_direction; $i <= $page + $each_direction; $i++) 
{ 
    if(($i > 5) && ($i <= $total_pages-5)) 
    { 
     if($page != $i) 
     { 
      $output .= '<div class="pageBtn">' . $i . '</div>' ; 
     } 
     else 
     { 
      $output .= '<div class="pageBtnSet">' . $i . '</div>' ; 
     } 
    } 
} 

for($i = $total_pages-5;$i<$total_pages;$i++) { 
    if($page != $i) 
     { 
      $output .= '<div class="pageBtn">' . $i . '</div>' ; 
     } 
     else 
     { 
      $output .= '<div class="pageBtnSet">' . $i . '</div>' ; 
     } 
} 
if($page < $total_pages) 
{ 
    $output .= '<div class="pageBtn">>></div>' ; 
} 
else 
{ 
    $output .= '<div class="pageBtnDis">>></div>' ; 
} 
return $output ; 

}

答えて

4

私は、現在の最善の解決策はDigg Style Pagination Classを使用することだと思います。これは、ページネーションマークアップの作成とスタイリングを大幅に簡素化します。

+1

ありがとう、ちょうど私が探していたもの! – imperium2335

+0

問題なく、助けてくれてうれしいです。 – Tony

0

Pager PEAR classは高度にカスタマイズ可能で、私はこれで多くの成功を収めました。

+1

PEARが失われた原因です。それは肥大し、依存関係がいっぱいです。オブジェクト指向のコードは厳密には何であってはならない。深刻なプログラマーは、何年もかけて洋梨の形をしたPEARを使用していません。あなたがコードを書く方法を知っていれば、あなたは自分のページャーを30分で書くことができます。ヒント:ページャはHTMLコードを生成しません。代わりに、その計算の結果を配列に入れ、別のクラスにHTMLを生成させるべきです。それは良い出発点です。 –

+0

@JGEstiotええ、誰もPEARをもう使用しません。これは3年前の答えです。最近では、誰かにLaravelのようなフレームワークを使用してページ設定を組み込んだことをアドバイスしています。 – ceejayoz

+0

私はLaravelに触れません。プロジェクトの99%に対して、それは完全な過剰殺害です。 –

関連する問題