2011-12-18 5 views
0

페이지 분할 구현이 부분적으로 개발되었지만 문제가 있습니다.페이지 매김 구현에 어려움을 겪고 있습니다.

Page 3 | Page 4 | Page 5 

매김의 중간 링크는 현재 선택된 페이지입니다 :

나는 매김는 다음과 같이하고자합니다. 페이지가 0이면 현재 선택된 페이지가 첫 번째 링크입니다. 페이지가 0이 아닌 경우 현재 선택된 페이지가 두 번째 링크입니다. 페이지가 마지막 페이지이면 현재 선택된 페이지가 세 번째 링크입니다.

지금까지 구현 한 내용은 현재 페이지를 강조 표시하지만 현재 페이지를 중앙 링크로 만들지 않습니다. 또한 마지막 페이지로 이동하면 존재하지 않는 페이지 매김에 2 개의 추가 페이지가 추가됩니다.

<?php for($i=0; $i <= $pages && $i < 3; $i++) : ?> 
    <li <?php echo ($page == $i + $page) ? 'class="current-page"' : '' ?>><a href="category.php?category=<?php echo $category->category ?>&page=<?php echo $page + $i ?>"><?php echo $page + $i ?></a></li> 
<?php endfor; ?> 

어떤 조언이 필요합니까?

+1

'($ page == $ i + $ page)'<- 이것은'$ i == 0' 일 때만 가능하며 언제나 true입니다. – FakeRainBrigand

+0

'$ pages'에 값을 줄 수 있습니까? 그것은 당신의 예에서 3이나 5가 될 것입니까? – FakeRainBrigand

+0

예, 페이지의 번호는 0 ... n이지만 3 - 5를 예로 들었습니다. – GV1

답변

1

귀하의 질문을 이해하는 한, 이것은 올바른 결과를 제공합니다.

<li> 
    <a href="category.php?category=abc&page=3">3</a> 
</li> 
<li class="current-page"> 
    <a href="category.php?category=abc&page=4">4</a> 
</li> 
<li> 
    <a href="category.php?category=abc&page=5">5</a> 
</li> 

<?php 
$page = 3; 
$pages = 5; 
$category = 'abc'; 
?> 

<?php for ($i = 0; $i <= $pages && $i < 3; $i++) : ?> 
<li<?php echo ($i == 1) ? ' class="current-page"' : '' ?>> 
    <a href="category.php?category=<?php echo $category ?>&page=<?php echo $page + $i ?>"><?php echo $page + $i ?></a> 
</li> 
<?php endfor; ?> 

출력이 될 것이다 ... 나는 테스트를 위해 $category$category->category을 단순화. 코드에서 다시 변경해야합니다. 데이터 1이 중심 ($1 대한 값)을 설정 0, 1, 2

($i == 1) 대신 ($page == $i + $page) 이유이다. 그것이 단순화 된 버전이라면 더 많은 계산을해야합니다 (예 : number of items/2 rounded down).

희망이 있습니다. 그렇지 않다면 더 많은 정보를 추가하면 내 대답이 업데이트됩니다.

관련 문제