Javascript innerHTML在窗口加载时未更改

Javascript innerHTML在窗口加载时未更改,javascript,php,innerhtml,Javascript,Php,Innerhtml,下面是我的页面布局 php function to fetch data from db css that has got some animations for my divs <script type="text/javascript"> window.onload = function() { var myVar = <?php echo callFunctionFromPHP() ?>; alert(myVar);

下面是我的页面布局

php function to fetch data from db
css that has got some animations for my divs
<script type="text/javascript">
    window.onload = function()
    {
        var myVar = <?php echo callFunctionFromPHP() ?>;
        alert(myVar);
        document.getElementById("waiting").innerHTML = "Text after load";
    }
</script>
<body>
<div id="waiting">Current text</div>
当页面加载时,我希望显示“当前文本”,加载页面后,我希望javascript调用php,php将在内部从db获取数据,一旦完成,我希望将div的文本更改为新文本

但这是行不通的。虽然我知道javascript函数正在被调用,因为如果在我的JS函数中我只保留innerHTML行,那么页面将加载“after”文本。另外,我知道我的php函数运行良好,因为当我“检查页面源代码”时,它会显示来自数据库的正确数据

但是我的警报命令不起作用。有人能帮我解决什么问题吗


注意:我知道这可能不是像这样从js函数调用php的最佳编码实践,但我现在只进行原型设计。

您需要将输出用双引号括起来:

var myVar = "<?php echo callFunctionFromPHP() ?>";

当我“检查页面源”时,它会显示来自数据库的正确数据。-你能发布你的页面资源中的内容吗?这听起来像是PHP回送的任何东西都不是有效的javascript代码,导致浏览器停止执行JS。您不能从JS调用PHP函数,因为PHP运行服务器端,结果发送到浏览器,作为JS进行计算。要做类似的事情,您需要一个ajax调用,您可以运行php函数并返回一些值,然后javascript可以对这些值进行评估@FZs@ChristopherBradshaw是的,但是不能像询问者写的那样从JavaScript调用它。这段代码在页面加载之前运行。即使这是原型,你也不应该这样做:呸!抢手货这取决于callFunctionFromPHP的功能。如果它确实返回json_encode$something;你不想把它包起来quotes@rickdenhaan你说得对。但没有进一步的细节,这只是一个猜测游戏。