在jquery中进行页面刷新

时间:2013-07-27 00:18:32

标签: php javascript

所以我有一个倒计时器。在计时器命中0后,我需要它来更新数据库,然后刷新页面。

以下是我到目前为止的计时器/更新数据库。

<script>
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>

所以这适用于计时器和数据库更新,但现在我需要在那里添加一个刷新,我尝试这样做。

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']));echo'<META HTTP-EQUIV="Refresh" Content="0; URL=dashboard.php">';?></div></div><div style=\"clear:both;\"></div>";

然后计时器停止一起工作.... php标头也无法在我的服务器上运行(标头全部准备好发送错误) 我需要它,所以当计时器达到0时,它将刷新页面。

1 个答案:

答案 0 :(得分:3)

你不能在这样的Javascript中使用PHP。您需要使用Javascript(即AJAX)来调用服务器端PHP脚本来执行数据库查询并将数据返回到Javascript以填充到页面上。

看来你真的需要尝试理解服务器端逻辑(在你的情况下为PHP)和客户端逻辑(Javascript)之间的分离。现在发生的事情是您将PHP代码回显到Javascript script标记中,这显然是无效的Javascript。