2017-04-20 129 views
0

我做了一個分頁程序,但問題是當只有一個頁面時,它會在底部顯示頁碼。所以我試圖添加if〜else,但是我無法讓它工作。CakePHP自定義分頁程序

才道: 「誤差超過120秒最長執行時間」

<div class="pagination"> 
    <?php for($x = 1; $x <= $pages; $x++): ?> 
     <a href="?page=<?php echo $x; ?>"<?php if($page === $x) { echo ' class="selected" '; } ?>><?php echo $x ?></a> 
    <?php endfor; ?> 
</div> 

<div class="pagination"> 
    <?php 
     if($pages > 1){ 
      for($x = 1; $x <= $pages; $x++): 
       if($x = 1) 
       { 
       ?> 
       <a href="?page=<?php echo $x; ?>"<?php if($page === $x) { echo ' class="selected" '; } ?>><?php echo $x ?></a> 
       <?php 
       } else { 
       echo ''; 
       } 
      endfor; 
     } 
    ?> 
</div> 

回答

4

假設$pages是你的頁面的總數,你需要用您的自定義分頁顯示在if聲明中,以檢查您在顯示分頁之前是否有超過1頁的頁面。

<?php if ($pages > 1): ?> 
    <div class="pagination"> 
     <?php for ($x = 1; $x <= $pages; $x++): ?> 
      <a href="?page=<?php echo $x; ?>"<?php if($page === $x) { echo ' class="selected" '; } ?>><?php echo $x ?></a> 
     <?php endfor; ?> 
    </div> 
<?php endif; ?> 

你的代碼被打破,因爲你正在做你for循環內的if聲明和$x值每次(你使用=代替==)設置爲1。這會讓你陷入無限循環。

如果您使用的是CakePHP,有沒有理由不使用內置的PaginationPaginatorHelper應該爲您提供顯示分頁所需的所有方法。