2016-09-09 3 views
1

Я создал кнопку выпадающего списка, чтобы выбрать Элементы на страницу i.e. $limit, связанные с моей страницей pp. Селекторы для 3, 10, 20 и 100 работают нормально.Элементы на странице - Невозможно показать все элементы на одной странице - Php Pagination

Но, когда я нажимаю на All, страница показывает только default предел, 10. ссылка отображается общее количество записей (320), как предполагается. Но на странице отображается только 10 записей.

Limit Selector:

<?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; 
} 
?> 

В раскрывающихся:

<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> 

Вот нумерацией страниц сценария в случае, если это необходимо:

<?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. Я не профессионал. Я создал $limit код с моими ограниченными знаниями PHP.

+0

На выпадающего меню у вас есть: All Почему

+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.

Таким образом, изменение этой строки в выпадающем списке должно быть исправлено.

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

Смежные вопросы