javascript不调用php变量

javascript不调用php变量,javascript,php,html,variables,Javascript,Php,Html,Variables,我正在制作一个有3个文档的网站。包含所有html结构和脚本的Php文档、对问题不感兴趣的css文档以及javascript文档 我试图通过.innerHTML语句输入javascript变量的html内容。要做到这一点,我需要(当然)对HTML内容进行编码,因此我在javascript文件本身中进行编码。像这样: document.getElementById("exp").innerHTML = "<div class=\"cell\">\

我正在制作一个有3个文档的网站。包含所有html结构和脚本的Php文档、对问题不感兴趣的css文档以及javascript文档

我试图通过.innerHTML语句输入javascript变量的html内容。要做到这一点,我需要(当然)对HTML内容进行编码,因此我在javascript文件本身中进行编码。像这样:

document.getElementById("exp").innerHTML = "<div class=\"cell\">\
                                                <div class=\"project_cell\"><img src=\"img.png\"></div>\
                                                <div class=\"project_cell\">text</div>\
                                               </div>\";
document.getElementById(“exp”).innerHTML=”\
\
正文\
\";
这是有效的。然而,代码显然不仅仅是这样。这是一个复杂的HTML结构,我不希望在javascript文件中看到它。因此,我想使用PHP将这个变量中的HTML内容放入一个文本文件中,并在innerHTML语句中生成该变量,而不是在所有代码中。 我的PHP文件是这样的

<html>
    <head>
        <title>sample</title>

    <?php
        $filename = "thisishtml.txt";
        $doc = file_get_contents($filename);
    ?>

        <script src="javascriptfile.js" type="text/javascript"></script>

    </head>

    <body>
...call javascript function...

样品
…调用javascript函数。。。
对我来说似乎没问题,但如果我真的喜欢:

document.getElementById("exp").innerHTML = "<?php echo $doc ?>"
document.getElementById(“exp”).innerHTML=“”
它不起作用。我尝试过简单的文本,我尝试过一个新项目,它在一个新项目中有效,但在这个项目中无效。我做错了什么?我看了很多问题和教程,但没有帮助,这就是为什么我在这里寻求帮助


非常感谢您抽出时间。我希望我们能解决这个问题。

您可能需要转义$doc for JS输出的内容

document.getElementById("exp").innerHTML = <?php echo json_encode($doc) ?>;
document.getElementById(“exp”).innerHTML=;

如果您的javascript代码位于javascript文件中,PHP不会处理该文件,因此您无法在该文件中执行PHP代码

因此,您可以将javascript代码直接放入PHP页面

<script type="text/javascript">
function someFunction()
{
    document.getElementById('exp').innerHTML = "<?php echo $doc ?>";
}
</script>

document.getElementById(“exp”).innerHTML=这似乎是一个非常好的答案,但由于某些原因,我没有正确理解。路径是正确的,我确信变量有它的内容,因为当我在php部件上执行“echo$doc”时,它会出现在屏幕上。但是我还没有实现如何链接这个变量并将其内容正确地放入javascript中。好吧,老实说,我建议通过ajax加载这个文本。使用jQuery(或其他库)可以快速轻松地完成此操作。您也可以尝试以下操作:
document.getElementById('exp').innerHTML=“”
<script type="text/javascript">
var doc = "<?php echo $doc ?>";
</script>
function someFunction()
{
    document.getElementById('exp').innerHTML = doc;
}