0

だから私はこのようなページネーションリンクを持っています。

for ( $counter = 0; $counter <= $page_amount; $counter += 1) {
        echo "<a href=\"section.php?q=$section&p=$counter\">";
        echo $counter+1;
        echo "</a>";
     }

リンクは次のようになります。

1 2 3 4 5 6 7 など。

しかし、これを制限したいので、7 ページを超える場合は、次のように 7 つのリンクのみを表示します。

1 2 3 ... 10 11 12

ここで、12 は最後のページです。

次のページに移動すると、次のように最初のページのみが変更されます。

3 4 5 ... 10 11 12

次のように最後の 7 ページに到達するまで:

6 7 8 9 10 11 12

どうすればいいですか??

助けてください。

4

1 に答える 1

0

これを行う1つの方法があります。

// Set some presets
$current_page = 0;
$page_amount = 11;
$limiter = 7;

// Set upper and lower number of links
$sides = round(($limiter/2), 0, PHP_ROUND_HALF_DOWN);

for ( $counter = 0; $counter <= $page_amount; $counter++) {
    // Start with Current Page
    if($counter >= ($current_page)){
        // Show page links of upper and lower
        if(($counter <($current_page+$sides))||($counter >($page_amount-$sides))){
            echo "<a href=\"section.php?q=$section&p=$counter\">";
            echo $counter+1;
            echo "</a> ";
        }
        // The middle link
        elseif($counter ==($current_page+$sides)){
            echo "<a href=\"page.php?p=$counter\">";
                    // Show number if number of links == $limiter
            if(($page_amount-$current_page)==$limiter-1){
                 echo $counter+1;
            }
            // Show '...' number of links > $limiter 
                    else {
                     echo "...";
            }
            echo "</a> ";
        }
     }
}

これにより、表示されるリンクの数を変更できます。7から9まで。

PHP_ROUND_HALF_DOWNで使用するにround()はphp>=5.3が必要であることに注意してください

于 2013-02-07T04:03:02.867 に答える