오늘 회원가입수, 주문수 자동으로(?) 출력
본문
https://sir.kr/yc5_skin/1762
위 게시글의 팁을 참고해서 오늘 ?? 수 를 모듈화(?) 함수화(?) 시켜서 출력하고 있습니다.
<?php
if( ! function_exists(today_count) ) {
function today_count($type) {
global $g5;
if( !$type ) return;
switch($type) {
case '주문건':
$table = $g5['g5_shop_order_table'];
$where = 'od_time';
$add = ' and od_status != "취소" ';
// $sql = " select count(*) as cnt from {$g5['g5_shop_order_table']} where od_time between '".G5_TIME_YMD." 00:00:00' and '".G5_TIME_YMD." 23:59:59' and od_status != '취소' ";
break;
case '가입자':
$table = $g5['member_table'];
$where = 'mb_datetime';
// $sql = " select count(*) as cnt from {$g5['member_table']} where mb_datetime between '".G5_TIME_YMD." 00:00:00' and '".G5_TIME_YMD." 23:59:59' ";
break;
}
$sql = " select count(*) as cnt from {$table} where {$where} between '".G5_TIME_YMD." 00:00:00' and '".G5_TIME_YMD." 23:59:59' {$add} ";
$row = sql_fetch($sql);
$cnt = $row['cnt'];
return $cnt ? "(오늘".$type." <strong>".number_format($cnt)."</strong>)" : "";
}
}
이런식으로 구현이 되는데요. 추후에 다른 데이터로 오늘 ?? 수 를 가져와야할 경우도 고려해서 함수화 시켰습니다. 딱히 가입자, 주문건 말고는 쓰일데가 문의, 후기...등등 많진 않아서 앞에 말한 가입자, 주문건 만 사용할 것 같기는 합니다.
여기서 궁금한 것은... 관리자>회원관리 또는 주문내역 페이지를 띄워놓은 상태에서 가입 또는 주문이 발생할 경우 새로고침없이 바로 출력이 되거나, $cnt 의 변화를 감지해서 자동으로 새로고침을 해줘서 출력시키거나... 0이 돼서 자동으로 사라지게 하는 방법이 있나요??
새로고침없이 띄우거나 변화를 감지해서 자동으로 새로고침해주게끔 편리하게 수정(개발)을 하려는 건 아니고, 단순히 방법이 있다면 어떤 식으로 처리되는지가 궁금합니다...
!-->답변 1
서버에 데이터를 화면에 뿌려준다면 가능합니다.
setInterval(() => {
$.ajax({
url: '데이터 보낼 주소'
method: 'GET',
dataType: 'json', // 서버에서 반환할 데이터 형식
success: function(response) {
// 서버로부터 받은 데이터를 처리
console.log(response);
여기에 카운트 값을 바꿀 DOM 을 입력
예) $(".total_count").text(response.count);
},
error: function(xhr, status, error) {
// 오류를 처리
console.error('데이터 가져오기 오류:', error);
}
});
}, 1000); // 1000ms = 1초
좀 여유있게 30초 60초 마다 한번씩 확인하는 방법을 통해서, 위에 작성했던 코드를 JSON 으로 출력 > 화면에 보여주시면 원하는데로 가능하실 것 같습니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.