더보기 버튼 클릭 시, 각 게시글에 고유 숫자 부여하려면?
본문
https://sir.kr/g5_skin/20428 (더보기 게시판 스킨)인데,
더보기 클릭 시, 0 ~ 기본출력개수의 동일한 숫자의 for 반복문이 계속 생성됩니다.
for ($i=0; $i<count($list); $i++)
궁금한 건,
더 보기 클릭 시, 혹시, for문의 시작 숫자와 종료숫자를 중복되지 않게 수정 가능한지네요.
아니면, for문 안의 $i 값을 더보기 클릭할 때마다 고유 숫자가 되게 할 수 있나 하는 겁니다.
혹시, 위 질문 내용이 이해 안 되셨으면, 아래 글 참고해 주세요.
https://homzzang.com/b/free-2921
PS.
아침댓바람부터 어려운 질문 던졌네요. 반성합니다. ㅎ
답변 5
for 문장은 현재 페이지의 개시물의 제한수(페이지당 게시물수)와 맞물려 작동하는게 맞습니다.
굳이 출려 표기를 올리려면
위 스킨에서 넘겨주는 영역에서잘 찾으면 해결방법이 있습니다.
list.skin.php 의
215 라인에서보시면
$.get( "<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&ajax_ck=1&sca=<?php echo urlencode($sca) ?>&page="+page_n, function( data ) {
의 문장을 보면
&page=+page_n
을 발견할수있습니다.
여기에서
page_n은
var page_n = $('#page_n').html();
로 가져옵니다.
해당 영역역시
<!-- 페이지 -->
<span id="page_n" style="display:none;">2</span>
로 되어있죠
초기값이고
개발자도구로
더보기를 클릭하면
해당영역이 증가함을 발견할수있습니다.
그렇다면
for문에서
for( $i=0;$i<count($list);$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;
와 같이 사용하시면 될듯 싶네요
!-->
보통 더보기 클릭시 ajax로 값 뿌려지거든요 첫페이지는 for문만 던지고 나머지값은 ajax로 값 넣ㅇㅅ 출력되는값을 html로 뿌려서 추가해서 넣긴해요
그냥 ajax로 추가로당 하면 되는곳 아난가요?
아작스로 처리해야되는부분이네요
답변 주신 분들 모두 감사합니다.
알려주신 방법들 참조해 한번 더 힘내서 연구해보도록 하겠습니다. ^^*