Javascript 我可以使用document.getElementById.write()吗;在heredoc里面写?
我希望能够在herdoc语法中编辑一些内容。大概是这样的: index.php:Javascript 我可以使用document.getElementById.write()吗;在heredoc里面写?,javascript,php,html,document.write,Javascript,Php,Html,Document.write,我希望能够在herdoc语法中编辑一些内容。大概是这样的: index.php: $var = <<<HTML <form action="index.php" method="get" id="forma"> <input type="radio" name="choice" value="value">Message<br> </for
$var = <<<HTML
<form action="index.php" method="get" id="forma">
<input type="radio" name="choice" value="value">Message<br>
</form>
HTML;
...
$form = $var;
$var=您试图做的(更改HEREDOC)是不可能的
PHP在服务器上得到解释,结果是一个带有一些嵌入式JS的HTML文件。
只有在这个HTML文件到达客户端并被解释之后,JS才会被执行。此时,包含herdeoc的原始PHP文件早已不存在了
但是,您可以在客户端操作DOM,但是您应该使用元素.innerHTML
作为文档的替代方法。编写如果我理解正确,您希望有一个按钮,在一些用户操作之后可以看到。我建议创建隐藏的按钮,然后通过JS显示,而不是通过JS创建
因此,您的HTML变成:
$var = <<<HTML
<form action="index.php" method="get" id="forma">
<input type="radio" name="choice" value="value">Message<br>
<!-- Note the *style* attribute -->
<input type="submit" style="display: none;" id="submitBtn">
</form>
HTML;
编辑:JsFiddle for this:是否要替换表单中的所有内容,或添加到表单中?document.getElementById('forma')。innerHTML=''
覆盖或document.getElementById('forma').innerHTML+=''
追加。@RocketHazmat不起作用,而不是抱怨其他人提供的解决方案不起作用,你为什么不给我们更多的细节,告诉我们你到底想实现什么,以什么方式实现?对于您描述的问题,已经提供了几种有效的解决方案。如果这不是你要解决的问题,请考虑更详细地解释。那么,是否还有另一种方法将HTML放入PHP变量中,然后通过javascript添加到html?也许如果你解释一下你的上下文,以及为什么你认为需要通过JS代码修改php变量,我们可以提供更多帮助。你不需要修改php变量,正如在其他答案中更详细地提到的那样,JS操作DOM就足够了,但我需要将html放入php变量中。有没有替代html服务器端的方法?@Jordan您似乎不太清楚客户端代码和服务器端代码之间的区别。更改服务器端HTML的唯一方法是从数据库中加载、从文件中读取、根据参数进行更改等。JS脚本无法更改服务器端PHP文件,也没有必要这样做。您忘记了结束引号:document.getElementById('submitBtn')代码>并且它不会使按钮可见我添加了缺少的报价。在Firefox中它对我很有效。看见当然,您必须确保以某种方式调用了JS函数。在我的示例中,我使用了一个链接,但您可以通过其他方式自由调用它。您没有在问题中指定如何调用确认
-对话框。它在没有HEREDOC时工作。JSFiddle不显示php。否则,它会起作用。不过,谢谢。好吧,JSFIDLE只用于客户端代码,所以它不能解释仅限于PHP的普通HTML和JavaScript。
$var = <<<HTML
<form action="index.php" method="get" id="forma">
<input type="radio" name="choice" value="value">Message<br>
<!-- Note the *style* attribute -->
<input type="submit" style="display: none;" id="submitBtn">
</form>
HTML;
function someJsHandler() {
if (confirm("Your message here")) {
var button = document.getElementById('submitBtn');
button.style.display = 'block'; // Makes the button visible
}
}