【问题标题】:Why does document.write + echo not work? [duplicate]为什么 document.write + echo 不起作用? [复制]
【发布时间】:2012-12-16 14:03:03
【问题描述】:

可能重复:
how to put javascript variable in php echo

我遇到了 PHP 问题。我想在 JavaScript 中使用 PHP 变量。但是,它不起作用! $doccontent 只显示一次!这里是Test.php(给定页面参数,例如Test.html):

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <?php
        $page = $_GET["page"];
        $doc = new DOMDocument();
        $doc->loadHTMLFile($page);
        $doc->formatOutput = true;
        $contentnode = $doc->getElementById('content');
        $doccontent = new DOMDocument();
        $doccontent->appendChild($doccontent->importNode($contentnode, true));
        $doccontent = $doccontent->saveHTML();
        ?>
    </head>
    <body>
        <?php
            echo $doccontent;
        ?>
        <script type="text/javascript">
            document.write("<?php echo $doccontent;?>");
        </script>
    </body>
</html>

这里是Test.html:

<!DOCTYPE html>
<html>
    <head>
        <title>Hey</title>
        <link rel="stylesheet" type="text/css" href="Edit.css">
    </head>
    <body>
        <button id="admin"><a href="Edit.php?page=Edit.html">Edit</a></button>
        <h1>Automatica</h1>
        <div id="content">
            <h2>Header 1.1</h2>
            <p>Test</p>
            <h3>Header 1.1.1</h3>
            <p>Test</p>
            <h3>Header 1.1.2</h3>
            <p>Test</p>
            <p>Test</p>
            <h4>Header 2.0.0.1</h4>
            <p>Test</p>
        </div>
    </body>
</html>

【问题讨论】:

  • 您确定$doccontent; 有值吗?如果有,是文字吗?它是否包含 "(双引号)?如果是这样,它可能会破坏您的 document.write
  • 您能否告诉我们您为什么要通过这些步骤将 HTML 页面加载到当前页面中?
  • @hakre: 其实恰恰相反
  • @mplungjan:我需要编辑那个页面
  • @Agantacroxi:是的,有大量完全相同的重复项。我刚刚挑选了一张昆汀参与的作品,所以你会得到一张同样质量的额外笔记。

标签: php javascript document.write


【解决方案1】:

$doccontent 几乎肯定包含" 字符和换行符,其中任何一个都会破坏由" 字符分隔的JS 字符串文字。

PHP json_encode 函数将给定一个字符串作为输入,输出一个 JS 字符串文字。您可以使用它而不是回显原始数据。 (记住不要在生成的字符串文字周围添加额外的 " 字符)。

【讨论】:

  • 有什么办法可以解决这个问题吗?
  • 哇,太好了!这解决了我的问题。那很快! :)
  • 我要等8分钟才能给你最好的答案
猜你喜欢
  • 1970-01-01
  • 2013-09-18
  • 2014-10-16
  • 2016-01-24
  • 2013-03-05
  • 2012-10-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多