网页上的Javascript不会更改文本

时间:2017-07-27 10:58:11

标签: javascript php

我的php页面底部有以下脚本,它在pageload上运行,但我需要它每10秒运行一次。它仅在页面加载时运行。

PHP正在运行。 我已经用十次倒计时测试了这个,并且脚本实际上是循环的,但出于某种原因,当我整合这个PHP时。

请帮忙。

<script>
    var CurrentBranch = "<?php echo file_get_contents('gitstatus.txt'); ?>";

    var x = setInterval(function () {
        CurrentBranch = "<?php echo file_get_contents('gitstatus.txt'); ?>";

        document.getElementById("CurrentTestBranch").innerHTML = CurrentBranch;

        CurrentBranch = "";
    }, 10000);
</script>

编辑: 代码会在第一次显示文件内容。但是当我进行更改并保存时不会刷新。

2 个答案:

答案 0 :(得分:2)

Your PHP code is run only when the page loads。它在运行时生成字符串文字。重复调用interval函数时,这些不会更新(因为PHP不会再次运行)。

如果您想从PHP获取新数据,则需要发出新的HTTP请求。

您可以重新加载整个页面,也可以使用XMLHttpRequest(或fetch)来调用Web服务,为您提供所需的数据(Ajax是一个有用的搜索词)。

答案 1 :(得分:-1)

PHP发生在HTML命中服务器之前。

查找setTimeout()javascript命令。你需要做的是让javascript调用另一个php脚本,它检查并回显你的价值。

像这样的东西(可能是来自内存的伪代码):

setTimeout(function(){
    var CurrentBranch = $.get('/url/that/sends/value');
    // do something with your value, call a function, whatever
}, 10000);