如何在PHP中获取JavaScript变量?

3

我建立了自己的在线JavaScript编辑器,但当我提交表单时,JavaScript不起作用。 以下是我的代码:

editor.php

<form action="show.php" method="post" target="window">
HTML code:<br />
<textarea name="html"></textarea><br />
JavaScript code:
<textarea name="javascript"></textarea><br />
<input type="submit" value="Test javascript" />
</form>
<iframe src="show.php" width="880" height="600" name="window"></iframe>

show.php

<html>
<head>
</head>
<body>
<?php
  if(isset($_POST['html'])) echo $_POST['html'];
  echo "<br><br>";
  if(isset($_POST['javascript'])){
    echo "<script>";
    echo $_POST['js'];
    echo "</script>";
  }
?>
</body>
</html>

HTML很好用,但当我在JavaScript文本框中输入内容时,iframe中的JavaScript将无法工作。请帮帮我。


1
具体是什么不起作用?你期望发生什么? - Andrew Marshall
4
警告!您正在未经过滤或验证的用户输入数据上进行操作并将其直接返回。这可能会导致跨站脚本攻击漏洞,使恶意用户轻松地劫持您的网站以实现他们自己的目的。而且,您甚至是“有意”这样做的! - Charles
1
我想要类似于http://jsfiddle.net/这样的东西,你可以输入你的HTML和JavaScript代码,并且可以看到输出结果。 - user1924244
除非你进行一些Ajax操作(如果你想让它在实时环境下工作),否则它不会起作用。你需要在幕后发送数据,存储它们,并在Ajax响应返回时使用新数据重新加载iframe。你需要以某种方式将它们存储在服务器端。 - mpm
看看像jsfiddle.net和jsbin.com这样的网站是如何做到的。 - Barmar
好的,现在它可以工作了,我的 PHP 代码有问题(你看不见的代码 :))。 - user1924244
1个回答

5

从您的代码中我没有看到名为js的输入字段,因此我做出以下假设:

echo $_POST['js'];

should be:

echo $_POST['javascript'];

否则,您的代码应该可以正常工作。

1
我认为@vision是正确的。我测试了你的代码,并且通过这个修复它可以工作。在JS代码中放置一个“alert('hello world')”,你会看到它可以工作。 - Diego Pino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接