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

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

QA

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

본문

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;

 

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

 

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


별말씀을요,
저도 더보기 기능구현때문에 한참을 고생했던적이 있는데,
sinbi님이 올린글보고 설치/테스트/정리해서 답드린거였습니다.
덕분에 오전에 붐업된 상태로 제 일을 해야겠네요
감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,160 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT