如何从Javascript调用PHP函数(理想情况下没有AJAX)

如何从Javascript调用PHP函数(理想情况下没有AJAX),javascript,php,html,Javascript,Php,Html,我真的不太了解AJAX。。问题就在这里 我正在读取PHP函数中填充一些全局变量的数据库,我可以访问这些变量,但我需要定期调用PHP函数 <?php function thatIwant() { //read database return 10; } echo(" <script> function refreshDiv() { //// this is where I need to call the above function. v

我真的不太了解AJAX。。问题就在这里

我正在读取PHP函数中填充一些全局变量的数据库,我可以访问这些变量,但我需要定期调用PHP函数

<?php

function thatIwant()
{
  //read database
 return 10;
}

echo("
<script>

function refreshDiv()
    {
     //// this is where I need to call the above function.
     var refresher = setTimeout('refreshDiv()', 2000);
    }
</script>
");
?>

如果不使用XmlHttpRequest,就不能定期从Javascript调用PHP函数。PHP在第一次请求页面时执行。使用XHR,您可以执行以下操作:

function refreshDiv() {
    setTimeout(function() {
        var xhr = new XmlHttpRequest();
        xhttp.onreadystatechange = function() {
            if (this.readyState === 4 && this.status === 200) {
                document.getElementById("refreshDiv").innerHTML = 
xhr.responseText;
            }
        };

        xhttp.open("GET", "yourPHPEndpoint.php", true);
        xhttp.send();
    }, 1000);
}

这将允许您连续查询PHP文件,并使用查询结果更新div的内容。这也可以通过jQuery与
$一起完成。ajax
$。get

您必须使用ajax。客户端代码不能调用服务器端代码,除非通过HTTP请求。“我真的不太了解AJAX。”此外,使用字符串参数调用
setTimeout
是一种糟糕的做法。使用函数引用:
var refresher=setTimout(refreshDiv,2000)谢谢-上面的代码是否可以像JS中的任何其他函数一样使用。@SamBrown只需将其添加到
块中即可。当它起作用时,一定要接受答案。希望这是有帮助的!如何在函数refreshDiv()中使用上述代码?yourDiv在函数中的作用是什么code@SamBrown您不需要这样做,但可以将其复制到
refreshDiv
。不过,请确保只调用它一次,因为它正在创建一个超时,每秒会自动触发一次。