我遇到了这个问题。在一个网页中,我有一个显示计数器的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>");
......这真的不起作用。
有人知道一种更简单的方法吗?
答案 0 :(得分:2)
您需要使用某种AJAX实现来实现这一点。
它将允许Js查询您的PHP脚本以获取$count
看起来你可能正在编写某种进度条?
答案 1 :(得分:0)
请注意,PHP在服务器端运行并生成HTML / Javascript。 Javascript在客户端端运行。
要显示类似的进度条,您需要做的是输出更新DIV元素的<script>
代码段。如果你放行
document.getElementById("counter").innerHTML = "<?php echo($count); ?>";
(注意引号)
进入循环,并关闭输出缓冲,之前输出counter
HTML元素,您将获得某种进度条。
但是,根据您想要在该进度条后面运行的操作,Ajax驱动的进度指示器可能会更加优雅。