테스트 사이트 - 개발 중인 베타 버전입니다

게시판 페이징 질문입니다. 채택완료

kjwkjm 7년 전 조회 3,252

게시판 페이징 질문입니다.

 

처음 이전 버튼,다음버튼이랑 맨끝 버튼 그냥 다 보이게 하고 싶은데 어떻게 해야 할까요?

 

  $str = '';     if ($cur_page > 1) {         $str .= '처음'.PHP_EOL;     }

    $start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;     $end_page = $start_page + $write_pages - 1;

    if ($end_page >= $total_page) $end_page = $total_page;

    if ($start_page > 1) $str .= '이전'.PHP_EOL;

    if ($total_page > 1) {         for ($k=$start_page;$k<=$end_page;$k++) {             if ($cur_page != $k)                 $str .= ''.$k.'페이지'.PHP_EOL;             else                 $str .= '열린'.$k.'페이지'.PHP_EOL;         }     }

    if ($total_page > $end_page) $str .= '다음'.PHP_EOL;

    if ($cur_page < $total_page) {         $str .= '맨끝'.PHP_EOL;     }

    if ($str)         return "

";     else         return ""; }

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

처음, 이전, 다음, 맨끝버튼 아래처럼 하시면 돼요.

</p>

<p>$str = '';

 //if ($cur_page > 1) {

  $str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;

 //}</p>

<p>$start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;

 $end_page = $start_page + $write_pages - 1;</p>

<p>if ($end_page >= $total_page) $end_page = $total_page;</p>

<p>//if ($start_page > 1) $str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;

$str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;</p>

<p>if ($total_page > 1) {

  for ($k=$start_page;$k<=$end_page;$k++) {

   if ($cur_page != $k)

    $str .= '<a href="'.$url.$k.$add.'" class="pg_page">'.$k.'<span class="sound_only">페이지</span></a>'.PHP_EOL;

   else

    $str .= '<span class="sound_only">열린</span><strong class="pg_current">'.$k.'</strong><span class="sound_only">페이지</span>'.PHP_EOL;

  }

 }</p>

<p>//if ($total_page > $end_page) $str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;

$str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;</p>

<p>

//if ($cur_page < $total_page) {

  $str .= '<a href="'.$url.$total_page.$add.'" class="pg_page pg_end">맨끝</a>'.PHP_EOL;

//}</p>

<p>if ($str)

  return "<nav class=\"pg_wrap\"><span class=\"pg\">{$str}</span></nav>";

 else

  return "";

 }</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

k
kjwkjm
7년 전
끝에서 다음 버튼 누르니까 계속 넘어가 버리네요 마지막 페이지에서는 &page= 이 값이 마지막에서 안 가야 하는데 ㅠ
배모씨
7년 전
수정했습니다.
[code]
$str = '';
if ($cur_page > 1) {
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
}else{
$str .= '<a href="javascript:;" class="pg_page pg_start">처음</a>'.PHP_EOL;
}

$start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
$end_page = $start_page + $write_pages - 1;

if ($end_page >= $total_page) $end_page = $total_page;

if ($start_page > 1){
$str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;
}else{
$str .= '<a href="javascript:;" class="pg_page pg_prev">이전</a>'.PHP_EOL;
}
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
$str .= '<a href="'.$url.$k.$add.'" class="pg_page">'.$k.'<span class="sound_only">페이지</span></a>'.PHP_EOL;
else
$str .= '<span class="sound_only">열린</span><strong class="pg_current">'.$k.'</strong><span class="sound_only">페이지</span>'.PHP_EOL;
}
}

if ($total_page > $end_page){
$str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;
}else{
$str .= '<a href="javascript:;" class="pg_page pg_next">다음</a>'.PHP_EOL;
}
if ($cur_page < $total_page) {
$str .= '<a href="'.$url.$total_page.$add.'" class="pg_page pg_end">맨끝</a>'.PHP_EOL;
}else{
$str .= '<a href="javascript:;" class="pg_page pg_end">맨끝</a>'.PHP_EOL;
}

if ($str)
return "<nav class=\"pg_wrap\"><span class=\"pg\">{$str}</span></nav>";
else
return "";
}
[/code]
k
kjwkjm
7년 전
빠른 답변 감사합니다.

이전 이랑 다음 버튼 누를시 한페이지만 넘어가게 하고 싶은데요. 어떻게 변경하면 될까요?
배모씨
7년 전
$cur_page 이게 현재페이지입니다.
[code]
$str .= '<a href="'.$url.($start_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;
//이전페이지 아래와 같이 변경.
$str .= '<a href="'.$url.($cur_page-1).$add.'" class="pg_page pg_prev">이전</a>'.PHP_EOL;


$str .= '<a href="'.$url.($end_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;
//다음페이지 아래와 같이 변경.
$str .= '<a href="'.$url.($cur_page+1).$add.'" class="pg_page pg_next">다음</a>'.PHP_EOL;
[/code]

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인