채택완료

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

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

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

  $str = '';
    if ($cur_page > 1) {
        $str .= '<a href="'.$url.'1'.$add.'" 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;

    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;

    if ($cur_page < $total_page) {
        $str .= '<a href="'.$url.$total_page.$add.'" class="pg_page pg_end">맨끝</a>'.PHP_EOL;
    }

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

|

답변 1개 / 댓글 4개

채택된 답변
+20 포인트

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

Copy
$str = '';
 //if ($cur_page > 1) {
  $str .= '<a href="'.$url.'1'.$add.'" 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;
$str .= '<a href="'.$url.($start_page-1).$add.'" 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;
$str .= '<a href="'.$url.($end_page+1).$add.'" 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;
//}

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

답변에 대한 댓글 4개

끝에서 다음 버튼 누르니까 계속 넘어가 버리네요 마지막 페이지에서는 &page= 이 값이 마지막에서 안 가야 하는데 ㅠ
수정했습니다.
[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]
빠른 답변 감사합니다.

이전 이랑 다음 버튼 누를시 한페이지만 넘어가게 하고 싶은데요. 어떻게 변경하면 될까요?
$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]

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