2016-09-09 9 views
1

選択するドロップダウンボタンを作成しましたページあたりのアイテムつまり、$limitは私のPHPページングに関連しています。 3,10,20,100のセレクタは正常に動作します。1ページあたりのアイテム数を表示することはできません - PHPページネーション

しかし IはAllをクリックしたときに、ページのみ10.それをすることになっているように、リンクは、エントリ(320)の総数を表示するdefault限界を示しています。しかし、このページには10項目のみが表示されます。

リミットセレクター:

<?php 
switch($_GET["limit"]){ 
    case "3": $limit = 3; break; 
    case "10": $limit = 10; break; 
    case "20": $limit = 20; break; 
    case "100": $limit = 100; break; 
    case "All": $limit = $rows1; break; 
    default: $limit = 10; break; 
} 
?> 

ドロップダウン:

<?php 
$pagination = ""; 

if($lastpage > 1) 
{ 
    $pagination .= "<ul class=\"w3-pagination w3-white w3-xlarge w3-card-8 w3-hide-small\">"; 

    //previous button 
    if ($page > 1) 
     $pagination.= "<li><a href=\"$targetpage?page=$prev&limit=$limit\" class=\"w3-hover-theme\"><i class=\"fa fa-arrow-left\"></i></a></li>"; 
    else 
     $pagination.= "<li><a class=\"w3-deep-orange\"><i class=\"fa fa-arrow-left\"></i></a></li>"; 

    //Pages 

    //not enough pages to bother breaking it up 
    if ($lastpage < 5 + ($adjacents * 2)) 
    { 
     for ($counter = 1; $counter <= $lastpage; $counter++) 
     { 
      if ($counter == $page) 
       $pagination.= "<li><a class=\"w3-deep-orange\">$counter</a></li>"; 
      else 
       $pagination.= "<li><a href=\"$targetpage?page=$counter&limit=$limit\" class=\"w3-hover-theme\">$counter</a></li>"; 
     } 
    } 
    //enough pages to hide some 
    elseif($lastpage > 5 + ($adjacents * 2)) 
    { 
     //close to beginning; only hide later pages 
     if($page < 1 + ($adjacents * 2))   
     { 
      for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<li><a class=\"w3-deep-orange\">$counter</a></li>"; 
       else 
        $pagination.= "<li><a href=\"$targetpage?page=$counter&limit=$limit\" class=\"w3-hover-theme\">$counter</a></li>"; 
      } 
      $pagination.= "<li><a href=\"#\">...</a></li>"; 
      $pagination.= "<li><a href=\"$targetpage?page=$lastpage&limit=$limit\" class=\"w3-hover-theme\">$lastpage</a></li>";   
     } 
     //in middle; hide some front and some back 
     elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) 
     { 
      $pagination.= "<li><a href=\"$targetpage?page=1&limit=$limit\" class=\"w3-hover-theme\">1</a></li>"; 
      $pagination.= "<li><a href=\"#\">...</a></li>"; 
      for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<li><a class=\"w3-deep-orange\">$counter</a></li>"; 
       else 
        $pagination.= "<li><a href=\"$targetpage?page=$counter&limit=$limit\" class=\"w3-hover-theme\">$counter</a></li>"; 
      } 
      $pagination.= "<li><a href=\"#\">...</a></li>"; 
      $pagination.= "<li><a href=\"$targetpage?page=$lastpage&limit=$limit\" class=\"w3-hover-theme\">$lastpage</a><li>";  
     } 
     //close to end; only hide early pages 
     else 
     { 
      $pagination.= "<li><a href=\"$targetpage?page=1&limit=$limit\" class=\"w3-hover-theme\">1</a></li>"; 
      $pagination.= "<li><a href=\"#\">...</a></li>"; 
      for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) 
      { 
       if ($counter == $page) 
        $pagination.= "<li><a class=\"w3-deep-orange\">$counter</a></li>"; 
       else 
        $pagination.= "<li><a href=\"$targetpage?page=$counter&limit=$limit\" class=\"w3-hover-theme\">$counter</a></li>"; 

      } 
     } 
    } 

    //next button 
    if ($page < $counter - 1) 
     $pagination.= "<li><a href=\"$targetpage?page=$next&limit=$limit\" class=\"w3-hover-theme\"><i class=\"fa fa-arrow-right\"></i></a></li>"; 
    else 
     $pagination.= "<li><a class=\"w3-deep-orange\"><i class=\"fa fa-arrow-right\"></i></a></li>"; 
    $pagination.= "</ul>\n";   
} 
?> 
<?=$pagination?> 

P.S.:それが必要な場合はここで

<div class="w3-dropdown-click"> 
    <button onclick="myFunction()" class="w3-btn w3-deep-orange">Items Per Page</button> 
    <div id="Demo" class="w3-dropdown-content w3-card-4"> 
     <a href="tips.php?page=<?php echo $page; ?>&limit=3">3</a> 
     <a href="tips.php?page=<?php echo $page; ?>&limit=10">10</a> 
     <a href="tips.php?page=<?php echo $page; ?>&limit=20">20</a> 
     <a href="tips.php?page=<?php echo $page; ?>&limit=100">100</a> 
     <a href="tips.php?page=<?php echo $page; ?>&limit=<?php echo $rows1; ?>">All</a> 
    </div> 
</div> 

<script> 
function myFunction() { 
    var x = document.getElementById("Demo"); 
    if (x.className.indexOf("w3-show") == -1) { 
     x.className += " w3-show"; 
    } else { 
     x.className = x.className.replace(" w3-show", ""); 
    } 
} 
</script> 

がケースでページネーションスクリプトです私はプロではない。私は $limitコードを私の限られたPHP知識で作成しました。

+0

All なぜ<$ rows1エコーPHP。 ?> –

+0

試してみることができます: All

+0

'$ rows1'はテーブルから選択されたエントリの総数です。私は別のクエリでそれを呼び出しました。申し訳ありませんが、ここに貼り付けるのを忘れました。しかし、問題は今答えられています。みんな、ありがとう。 – dngs

答えて

0

スイッチが言葉を探している:「すべて」が、あなたはそれを何か他のもの与えている:

<a href="tips.php?page=<?php echo $page; ?>&limit=<?php echo $rows1; ?>">All</a>

switch($_GET["limit"]){ 
    case "3": $limit = 3; break; 
    case "10": $limit = 10; break; 
    case "20": $limit = 20; break; 
    case "100": $limit = 100; break; 
    case "All": $limit = $rows1; break; 
    default: $limit = 10; break; 
} 

はあなたがlimitに与えた値のいずれかに適合していません。場合、デフォルトは10になります。

したがって、ドロップダウンでその1行のコードを変更すると修正されます。 ?あなたが持っているドロップダウンオン

<a href="tips.php?page=<?php echo $page; ?>&limit=All">All</a>

関連する問題