-3

所以我有一个倒计时到 0 的计数器,所以当它达到 0 时,我希望它执行 pdo 更新。问题是该if语句让更新发生在每次页面刷新时,而不是等待计数达到 0。
我查看了代码,看不出哪里出错了。

<?php   $timer = '20'; ?>
window.onload = function(){

(function(){
  var counter = <?php echo $timer ; ?>;

  setInterval(function() {
    counter--;
    if (counter >= 0) {
      span = document.getElementById("count");
      span.innerHTML = counter;
    }
    // Display 'counter' wherever you want to display it.
    if (counter === 0) {


        document.getElementById( "response" ).innerHTML = "<div style=\"float: right; display: inline-block; margin: 6px;\"><div class=\"skip_btn\">
<?php 
    $sqll = "UPDATE users SET coins=coins+? WHERE username=?";
    $q = $db->prepare($sqll);
    $q->execute(array('1',$_SESSION['username']));
    $sqll2 = "UPDATE websites SET clicks_left=clicks_left-? WHERE id=?";
    $q2 = $db->prepare($sqll2);
    $q2->execute(array('1',$row['id']));
?>
</div></div><div style=\"clear:both;\"></div>";
    }

  }, 1000);

})();

}

我刚刚使用解析器修复它购买

<script type="text/javascript" src="jquery.js"></script>          
<script type="text/javascript">

// Check if the page has loaded completely                                         
$(document).ready( function() { 
    setTimeout( function() { 
        $('#some_id').load('parser.php'); 
    }, 10000); 
}); 
</script>

感谢您对他网站的热烈欢迎。

4

1 回答 1

1

使用 jQuery 尝试以下操作:

$(document).ready(function() {
    var counter = 20;
    setInterval(function() {
        if( counter == 0 ) {
            $.post("url/to/php");
        }
        else {
            $("#div_for_showing_counter").html(counter);
            counter--;
        }
    }, 1000);
});

这样您就可以将客户端与服务器端分开。你可以在 php 文件中做任何你想做的事情。如果您需要回调或需要将数据传递给 php 文件,则只需将 $.post 修改为如下内容:

$.post("url/to/php", { "key1": "value1", "key2": "value2" }, function(data) {
    alert(data);
});
于 2013-10-24T00:32:13.093 回答