私はW3Schoolsで見つかったjavascriptコードを使用してカウントダウンタイマーを作成しようとしています。コードはいつも私のために働いていましたが、今は、ページにコメントを表示するPHPループ内でタイマーを作成する必要があります。これは、javascriptのタイマーコードが各コメントに対して一意でなければならないことを意味し、私は正しいと感じましたが、うまくいきません。ここに私が持っているものがあります:php foreachループ内でjavascriptのカウントダウンタイマーを作成する
<?php
$post_comments = $this->db->get_where('post_comments', array('display' => 'true'))->result_array();
foreach ($post_comments as $comment) { ?>
Expire time - <span id="cRemTime<?php echo $comment->id; ?>" style="color: red"> </span>
<?php
$comment_stop_time = date("M j, Y H:i:s", strtotime($comment->time. '+1 hours')); //timestamp from table + 1 hour
?>
<script>
var ExhaustTime = "<?php echo $comment_stop_time; ?>";
var countDownDate = new Date(ExhaustTime).getTime();
var x = setInterval(function() {
var now = new Date().getTime();
var distance = countDownDate - now;
var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60));
var seconds = Math.floor((distance % (1000 * 60))/1000);
document.getElementById("cRemTime<?php echo $comment->id; ?>").innerHTML = hours + ": " + minutes + ": " + seconds;
if (distance < 0) {
clearInterval(x);
document.getElementById("cRemTime<?php echo $comment->id; ?>").innerHTML = "Exhausted!";
}
}, 1000);
</script>
<?php } ?>
私は何が欠けていますか?
注:私はコード・イグナイターを使用します。
は、ページのソースコードを表示して出力するJavaScriptコードを見たことがありますか?コンソールのエラーが表示されますか? – WizardCoder
あなたが定義するjs vars(すべて!setInterval関数を含む)はグローバルです。つまり、それらは一度だけ存在する必要があります。したがって、最後のものだけが「有効」になります。あなたは 'span 'を使っているのと同じ方法で'名前空間 'を偽造することができます – Jeff