我希望能够在heredoc语法中编辑内容。像这样:
的index.php:
$var = <<<HTML
<form action="index.php" method="get" id="forma">
<input type="radio" name="choice" value="value">Message<br>
</form>
HTML;
...
$form = $var;
JS:
<script>
document.getElementById('forma').open();
document.getElementById('forma').write('<input type="submit">');
document.getElementById('forma').close();
</script>
编辑:我的目标是有一个按钮转到新页面,但只有在JS confirm()
弹出窗口中单击“确定”后,该按钮才会出现。
答案 0 :(得分:2)
你想做什么(改变HEREDOC)是不可能的。
PHP在服务器上被解释,结果是带有一些嵌入式JS的HTML文件。 只有在此HTML文件到达客户端并被解释之后,才会执行JS。此时,包含HEREDOC的原始PHP文件早已不复存在。
然而,你可以做的是在客户端操纵DOM,但你应该element.innerHTML
作为document.write
的替代。
答案 1 :(得分:0)
如果我理解正确,您希望有一个按钮在用户操作后变得可见。我建议创建隐藏按钮,然后通过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;
然后在您的JS中,只要confirm()
调用成功,就会立即显示该按钮:
function someJsHandler() {
if (confirm("Your message here")) {
var button = document.getElementById('submitBtn');
button.style.display = 'block'; // Makes the button visible
}
}
编辑: JsFiddle:http://jsfiddle.net/bQ6Un/