我遇到了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>
答案 0 :(得分:5)
$doccontent
几乎肯定包含"
个字符和新行,其中任何一个都会破坏由"
个字符分隔的JS字符串文字。
给定一个字符串作为输入,PHP json_encode
函数将输出一个JS字符串文字。您可以使用它而不是回显原始数据。 (切记不要在生成的字符串文字周围添加额外的"
个字符。)