2013-08-23 60 views
-1

我想要做的就是让一个变量来更新每5秒这样做:的setInterval似乎并没有重新执行PHP脚本

setInterval(document.getElementById("listeners").innerHTML = 
    "<?php include('../includes/shoutcaststuff.php'); 
    echo $dnas_data['CURRENTLISTENERS']; ?>",5000); 

,但发生的事情是内部HTML设置,但不会每5秒更新一次。 我的猜测是,PHP只执行一次,但我不知道如果是这样的话。 ,我知道我应该做一个函数来做setInterval里面的东西......我会清理代码,一旦我找出如何使它工作。 在此先感谢。

ok ... ajax是'最好的'答案,因为在这里一次不会有超过2个人登录,所以服务器请求并不是什么大不了的事情。 这里就是我得到了它的工作:

function lCount(){ 
    $.get("../includes/shoutcaststuff.php",{Count: "TRUE"}, function(data){ 
     document.getElementById('listeners').innerHTML = data; 
    }); 
} 

setInterval(lCount,5000); 

,并已将此添加到PHP的末尾:

if(isset($_GET["Count"])){ 
echo $dnas_data['CURRENTLISTENERS']; 
} 

现在它工作正常。

感谢您的建议家伙:)

+1

你不能直接用javascript执行PHP。您可能正在寻找AJAX – JCOC611

回答

0

<?php include('../includes/shoutcaststuff.php');
echo $dnas_data['CURRENTLISTENERS']; ?>

页建成时,该代码只执行一次。对于其他时间来说,这个JavaScript被称为无论首先回声将是价值。

而不是在这里使用一个静态值,你将需要使用ajax请求(或者如果你想使用html5 websocket)。该请求将每5秒钟触击一次您的服务器。请记住,这可能会导致服务器上的负载过重。

Ratchet是一种常用的PHP WebSocket实现,允许使用推送技术将数据发送到客户端。这可能比使用轮询方法更可取。

0

PHP代码运行在生成HTML/JS的服务器上。如果您需要在页面加载后运行php代码,请使用ajax。

看看这个例子;

使用此:

setInterval(document.getElementById("listeners").innerHTML = 
"<?php echo "1";?>",5000); 

威尔其输出到浏览器:

setInterval(document.getElementById("listeners").innerHTML = 
"1",5000);