더보기를 클릭할 때마다 증가하는 숫자를 PHP 변수에 담으려면?
본문
관련 질문: https://sir.kr/qa/273918
https://sir.kr/g5_skin/20428 (더보기 게시판 스킨) 에서 더 보기를 클릭하면
<span id="page_n">2</span> 요소 통해서 페이지수가 1씩 증가해요.
또, 리스트 안의 $page 변수도 1씩 증가합니다.
그런데,
이렇게 더보기 버큰 클릭 시 증가하는 $page 변수를 페이지 맨 하단 script 함수에 끌어와
아래처럼 사용하려니까, 숫자가 증가하지 않더라구요.
<?php
echo $page ; // 더보기 클릭 시 숫자가 증가 안 함. ※ list에서 사용하는 $page 변수
$page = '<span id="page_n">2</span>'; // 더보기 클릭 시 숫자가 증가함.
echo $page-1;
$pattern = '#<span id="page_n">(.*?)</span>#'; // 요소안 숫자만 추출
preg_match($pattern, $page, $matches);
echo $matches[1]; // 더보기 클릭 시 숫자가 증가 안 함.
?>
이렇게 증가하는 숫자를 for 반복문의 max 값으로 사용하려 합니다.
for($i=0; $i < $matches[1]i; $i++) {
좋은 아이디어 없을까요?
오늘도 아침부터 어려운 문제를..... 벽보고 반성하고 있겠습니다. ㅜㅜ
[질문 요약]
리스트에서 증가하는 고유번호 숫자 최대값을
하단 script 함수 안의 php for 반복문의 max 값으로 활용하고자 합니다.
답변 1
시점의 차이를 잘 고려하셔야 할것 같네요
우선, 가져오려는 값인
page_n 은 HTML 로 클라이언트의 브라우저에 위치합니다.
둘째로, 카운트 하려는 값인 $page는 서버에서 작동하는 PHP 변수입니다.
셋째로, HTML에서 [더보기]를 눌렀을때
페이지 정보를 서버에서 가져온후 페이지값을
브라우저에서 갱신처리합니다. (이부분은 Ajax 작동을 좀더 보셔야 할듯 싶네요)
따라서, 카운트를 하려는 $page는 갱신되지 않습니다.
왜냐면 세번째영역의 더보기 시점에 눌러지는 $page는 화면에 노출되는 값이 아닌 서버에서 처리되고 결과값에 해당되는 정보만 전달됩니다.
결국 $page의 값을 가지고 무엇을 하려는지에 따라
서버에서 작동하는 PHP가 아닌
클라이언트에서 작동하는 jQuery등으로 처리를 하고
서버상의 증가값을 처리하기위해선 또다른 ajax를 통해서 판단되어야 합니다.