PHP分页功能随页面而变化

时间:2014-09-02 22:42:56

标签: php pagination

所以我写了一个简单的分页功能:

function pagination ( $iTotalItems ) 
{
    if( is_array( $iTotalItems ) ) 
        $totalItems = sizeof ( $iTotalItems );
    if( is_int( $iTotalItems ) ) 
        $totalItems = $iTotalItems;

    $page = (int)( empty( $_GET['page'] ) ? 1 : $_GET['page'] );
    if ($page <= 0) $page = 1;
    $itemsPerPage = PAG_PER_PAGE;
    $prev = $page - 1;                         
    $next = $page + 1;
    $prevlabel = "&lsaquo; Prev";
    $nextlabel = "Next &rsaquo;";
    $totalPages = ceil( $iTotalItems / $itemsPerPage );
    $perPage = $page == 'all' ? $totalItems : $itemsPerPage;
    $adjacents = 2; 

    if( $totalItems > $itemsPerPage ) 
    {
        $filler         = '';
        $NumStart       = '';
        $NumEnd         = '';
        $pageNavigation = '<div class="Pagination">'. PHP_EOL;
        $previousLink   = $prev !== 0         ? "<a href='?p=items&page={$prev}'>{$prevlabel}</a>". PHP_EOL : "<span class='noneLink'>{$prevlabel}</span>". PHP_EOL;
        $nextLink       = $page < $totalPages ? "<a href='?p=items&page={$next}'>{$nextlabel}</a>". PHP_EOL : "<span class='noneLink'>{$nextlabel}</span>". PHP_EOL;


        for( $i = 1; $i < $totalPages + 1; $i++ )
        {
            if( $i <= 10  ) { $NumStart .= $page == $i ? '<span class="noneLink">'.$i.'</span>' : '<a href="?p=items&page='.$i.'">'.$i.'</a>'. PHP_EOL; }
            else { $filler = '...'; }
            if( $i > $totalPages - 3 ) {$NumEnd .= $page == $i ? "<span class='noneLink'>{$i}</span>" : "<a href='?p=items&page={$i}'>{$i}</a>". PHP_EOL; }
        }
    }
      return $pageNavigation . $previousLink . $NumStart . $filler . $NumEnd . $nextLink . '</div>';
}

现在它运行良好,但我不知道如何根据页面进行更改。例如:有40页,而第1页则看起来像这样。

‹ Prev 1 2 3 4 5 67 8 9 10 ...38 39 40 Next ›

然而,即使我在页面上...说20它仍然看起来一样。

在第1页上编写类似内容的最佳和最简单的方法是什么?

1 2 3 4 5 6 7 8 9 … 38 39 40 Next ›

和第15页上的类似内容:

‹ Prev  1 2 3 … 11 12 13 14 15 16 17 18 19 … 38 39 40 Next ›

提前致谢!

0 个答案:

没有答案