게시판 숫자 카운팅을 아래의 소스로 하고 있습니다.
Copy
<?php
$intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * 24));
$sql = " select count(*) as today_count from g5_write_00000 where wr_datetime >= '$intime' and wr_is_comment=0" ;
$data = sql_fetch($sql);
$new_list = $data['today_count'];
$list_a = sql_fetch("select count(*) as bo_count_write from g5_write_00000 where wr_is_comment=0 ");
$list_a = $list_a['bo_count_write'];
$comment_a = sql_fetch("select count(*) as bo_count_comment from g5_write_00000 where wr_is_comment=1 ");
$comment_a = $comment_a['bo_count_comment'];
echo "새글 ".$new_list."<br>"; // 새글
echo "전체 게시글 수 ".$list_a."<br>"; // 전체 게시글 수
echo "전체 코멘트 수 ".$comment_a; // 전체 코멘트 수
?>
해당 수치를 아래의 카운트 애니메이션으로 적용하려 하는데요.
Copy
<script>
function numberCounter(target_frame, target_number) {
this.count = 0; this.diff = 0;
this.target_count = parseInt(target_number);
this.target_frame = document.getElementById(target_frame);
this.timer = null;
this.counter();
};
numberCounter.prototype.counter = function() {
var self = this;
this.diff = this.target_count - this.count;
if(this.diff > 0) {
self.count += Math.ceil(this.diff / 5);
}
this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
if(this.count < this.target_count) {
this.timer = setTimeout(function() { self.counter(); }, 20);
} else {
clearTimeout(this.timer);
}
};
window.onload = function(){
new numberCounter("counter3", <?php echo $new_list; ?>);
new numberCounter("counter2", <?php echo $list_a; ?>);
new numberCounter("counter1", <?php echo $comment_a; ?>);
}
</script>
<p id="counter1"></p>
<p id="counter2"></p>
<p id="counter3"></p>
수치가 아예 표시되지 않고 그냥 "0"으로 표시 됩니다.
어디를 수정해야 할까요?
고수님들 부탁 드리겠습니다.
감사합니다.
답변 2개 / 댓글 6개
채택된 답변
+20 포인트
테스트해봤는데 잘되는데요??
Copy
<?php
$intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * 24));
$sql = " select count(*) as today_count from g5_write_ccc where wr_datetime >= '$intime' and wr_is_comment=0" ;
$data = sql_fetch($sql);
$new_list = $data['today_count'];
$list_a = sql_fetch("select count(*) as bo_count_write from g5_write_ccc where wr_is_comment=0 ");
$list_a = $list_a['bo_count_write'];
$comment_a = sql_fetch("select count(*) as bo_count_comment from g5_write_ccc where wr_is_comment=1 ");
$comment_a = $comment_a['bo_count_comment'];
?>
<script>
function numberCounter(target_frame, target_number) {
this.count = 0; this.diff = 0;
this.target_count = parseInt(target_number);
this.target_frame = document.getElementById(target_frame);
this.timer = null;
this.counter();
};
numberCounter.prototype.counter = function() {
var self = this;
this.diff = this.target_count - this.count;
if(this.diff > 0) {
self.count += Math.ceil(this.diff / 5);
}
this.target_frame.innerHTML = this.count.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
if(this.count < this.target_count) {
this.timer = setTimeout(function() { self.counter(); }, 20);
} else {
clearTimeout(this.timer);
}
};
window.onload = function(){
new numberCounter("counter3", <?php echo $new_list; ?>);
new numberCounter("counter2", <?php echo $list_a; ?>);
new numberCounter("counter1", <?php echo $comment_a; ?>);
}
</script>
<p id="counter1"></p>
<p id="counter2"></p>
<p id="counter3"></p>
위에 넣은 php 변수에 값이 정상적으로 들어있는지 확인해 보세요.
new numberCounter("counter3", 10000);
이렇게 하면 정상적으로 작동합니다.
$new_list;
이 변수들이 전부 0이 아닐까 싶네요.
답변에 대한 댓글 5개
답글 너무 감사합니다.
$new_list."<br>"; // 새글
$list_a."<br>"; // 전체 게시글 수
$comment_a; // 전체 코멘트 수
지정된 게시판의 글 수치 입니다
애니메이션 적용전에는 잘 나오는데요.
정상적으로 출력되는 수치를 애니메이션 효과를 주고 싶어서요.
적용했더니 그냥 "0"만 출력되고 있습니다.
쟁반짜장님께서 말씀해주신 방법으로 하면
지정된 수가 애니메이션 효과로 출력됩니다.
근데 지정된 수가 아닌 게시글의 수에 대해 애니메이션으로 하고싶습니다.
방법이 없을까요?
관심가져 주셔서 다시한번 감사드립니다.
$new_list."<br>"; // 새글
$list_a."<br>"; // 전체 게시글 수
$comment_a; // 전체 코멘트 수
지정된 게시판의 글 수치 입니다
애니메이션 적용전에는 잘 나오는데요.
정상적으로 출력되는 수치를 애니메이션 효과를 주고 싶어서요.
적용했더니 그냥 "0"만 출력되고 있습니다.
쟁반짜장님께서 말씀해주신 방법으로 하면
지정된 수가 애니메이션 효과로 출력됩니다.
근데 지정된 수가 아닌 게시글의 수에 대해 애니메이션으로 하고싶습니다.
방법이 없을까요?
관심가져 주셔서 다시한번 감사드립니다.
답변을 작성하려면 로그인이 필요합니다.
열공중님의 소스로 다시하니 바로 되네요.
똥손은 어쩔수 없나봅니다.
정말 너무너무 감사합니다.