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

더보기 버튼 클릭 시, 각 게시글에 고유 숫자 부여하려면? 채택완료

sinbi 7년 전 조회 4,986

https://sir.kr/g5_skin/20428" rel="noreferrer" target="_blank">https://sir.kr/g5_skin/20428 (더보기 게시판 스킨)인데,

더보기 클릭 시, 0 ~ 기본출력개수의 동일한 숫자의 for 반복문이 계속 생성됩니다.

for ($i=0; $i

 

궁금한 건,

더 보기 클릭 시, 혹시, for문의 시작 숫자와 종료숫자를 중복되지 않게 수정 가능한지네요.

아니면, for문 안의 $i 값을 더보기 클릭할 때마다 고유 숫자가 되게 할 수 있나 하는 겁니다.

 

혹시, 위 질문 내용이 이해 안 되셨으면, 아래 글 참고해 주세요.

https://homzzang.com/b/free-2921

 

PS.

아침댓바람부터 어려운 질문 던졌네요. 반성합니다. ㅎ

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

답변 5개

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

for 문장은 현재 페이지의 개시물의 제한수(페이지당 게시물수)와 맞물려 작동하는게 맞습니다.

굳이 출려 표기를 올리려면

 

위 스킨에서 넘겨주는 영역에서잘 찾으면 해결방법이 있습니다.

 

list.skin.php 의

215 라인에서보시면

</p>

<p>$.get( "<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&ajax_ck=1&sca=<?php echo urlencode($sca) ?>&page="+page_n, function( data ) {</p>

<p>

의 문장을 보면

&page=+page_n

을 발견할수있습니다.

 

여기에서 

page_n은

var page_n = $('#page_n').html();

 

로 가져옵니다.

 

해당 영역역시

로 되어있죠

 

초기값이고

개발자도구로

더보기를 클릭하면

해당영역이 증가함을 발견할수있습니다.

 

그렇다면

 

for문에서

for( $i=0;$i

이 문장은 이상이 없다고 봐야하고

label이 중첩되는게 문제일테니

변수를 하나 추가하시죠

 

$labelidx = ($page -1) * count($list) + $i;

로 말이죠

 

($page-1) * count($list) 여기서 의아하실수있는데

 

$page 는 값이 없을경우 1의 값을 가지게됩니다.

위의 자바스크립트 var page_n 은 다음페이지에 해당되는구문이고, 브라우저에 가지고있는값입니다.

서버상에서 체크할(페이지가 클라이언트로 전송되기전) 값에서는

 

$page 변수를 체크해야할수밖에 없는데

현재 페이지의 순번이 1페이지면

페이지수 x count($list)를 할경우

페이지당 12개의 게시물을 가지게 되면

순번이 13부터 시작하니 2페이에 해당되는 사항입니다.

따라서 페이지의 현재위치는 0의 값이 처음이죠

간단하게 배열의 첨자와 같다고 그냥 생각하시면 될듯싶구요

 

아무튼, 

 

방법은 위와 같으나

count($list)가 0을 갖게되면

php 7.2 이상에서는 경고룰 뱉어냅니다.

그래서, for문을 0 < 0 이런 식의 문장을 만들지말고

 

$cnt = count($list)

for($i = 0; $i < $cnt; $i++) {

    $labelidx = ($page -1) * $cnt + $i;

 

와 같이 사용하시면 될듯 싶네요

 

샘플 : http://zzunteam.deb.kr/bbs/board.php?bo_table=gallery

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

답변에 대한 댓글 2개

s
sinbi
7년 전
플래토 님, 대단하세용. + ______ +
덕분에 잘 해결했습니다.
정말 감사합니다. ^^*
플래토
7년 전
@sinbi
별말씀을요,
저도 더보기 기능구현때문에 한참을 고생했던적이 있는데,
sinbi님이 올린글보고 설치/테스트/정리해서 답드린거였습니다.
덕분에 오전에 붐업된 상태로 제 일을 해야겠네요
감사합니다.

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

s
sinbi Expert
7년 전

답변 주신 분들 모두 감사합니다. 

알려주신 방법들 참조해 한번 더 힘내서 연구해보도록 하겠습니다. ^^*

 

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

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

아작스로 처리해야되는부분이네요

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

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

Rido
7년 전

그냥 ajax로 추가로당 하면 되는곳 아난가요?

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

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

T
7년 전

보통 더보기 클릭시 ajax로 값 뿌려지거든요 첫페이지는 for문만 던지고 나머지값은 ajax로 값 넣ㅇㅅ 출력되는값을 html로 뿌려서 추가해서 넣긴해요

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

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

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

로그인