在更改php var时更新JS Var

时间:2010-08-31 13:16:30

标签: php javascript

我遇到了这个问题。在一个网页中,我有一个显示计数器的DIV(PHP变量,$ count)。我还有一个JS函数,它可以改变DIV的INNERHTML属性。我无法在更改PHP文件时更改js var。

HTML

<DIV id="counter">0</DIV>

PHP

while (----) {
  do_something;
  $count++;
}

JS

function ChangeDiv() {
document.getElementById("counter").innerHTML = // here the value of $count;
}
setinterval("ChangeDiv()",3600);

我想每隔一秒刷新DIV $ count的值......但是要做

document.getElementById("counter").innerHTML = <?php echo($count); ?>;

错误,因为它只会输出$ count的初始值。

我试图在函数ChangeDiv中插入一个参数,但是这样我每次$ count更改时都必须调用该函数,回显一个

echo("<script>ChangeDiv('".$count."');</script>");

......这真的不起作用。

有人知道一种更简单的方法吗?

2 个答案:

答案 0 :(得分:2)

您需要使用某种AJAX实现来实现这一点。

它将允许Js查询您的PHP脚本以获取$count

的新值

看起来你可能正在编写某种进度条?

答案 1 :(得分:0)

请注意,PHP在服务器端运行并生成HTML / Javascript。 Javascript在客户端端运行。

要显示类似的进度条,您需要做的是输出更新DIV元素的<script>代码段。如果你放行

document.getElementById("counter").innerHTML = "<?php echo($count); ?>";

(注意引号)

进入循环,并关闭输出缓冲,之前输出counter HTML元素,您将获得某种进度条。

但是,根据您想要在该进度条后面运行的操作,Ajax驱动的进度指示器可能会更加优雅。