더보기 버튼 클릭 시, 각 게시글에 고유 숫자 부여하려면? 채택완료
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개
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; 와 같이 사용하시면 될듯 싶네요
답변에 대한 댓글 2개
별말씀을요,
저도 더보기 기능구현때문에 한참을 고생했던적이 있는데,
sinbi님이 올린글보고 설치/테스트/정리해서 답드린거였습니다.
덕분에 오전에 붐업된 상태로 제 일을 해야겠네요
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
덕분에 잘 해결했습니다.
정말 감사합니다. ^^*