javascript没有调用php变量

时间:2013-10-17 21:36:05

标签: javascript php html variables

我正在建立一个有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>\";

这很有效。但是,代码显然不仅仅是这个。这是一个复杂的HTML结构,我不希望在javascript文件中看到。因此,我想将HTML内容放在这个变量中,使用PHP将文件放在文本文件中,并在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...

对我来说似乎没问题,但如果我愿意的话:

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

它不起作用。我尝试过简单的文本,我尝试过一个新项目,它适用于一个新项目,但不适用于这个项目。我究竟做错了什么?我看了很多问题和教程并没有帮助,这就是我在这里寻求帮助的原因。

非常感谢你的时间。我希望我们能解决这个问题。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

如果您的javascript代码在javascript文件中,PHP不会处理它,因此您无法在那里执行PHP代码。

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

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

或者您可以执行以下操作:

<script type="text/javascript">
var doc = "<?php echo $doc ?>";
</script>

然后在javascript文件中执行:

function someFunction()
{
    document.getElementById('exp').innerHTML = doc;
}