-2

我希望能够在 heredoc 语法中编辑某些内容。像这样的东西:

索引.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>

confirm()编辑:我的目标是有一个按钮可以转到一个新页面,但是在您单击 JS弹出窗口上的“确定”之前,该按钮不会出现 。

4

2 回答 2

3

您尝试做的事情(更改 HEREDOC)是不可能的。

PHP 在服务器上得到解释,结果是一个带有一些嵌入式 JS 的 HTML 文件。只有在这个 HTML 文件到达客户端并被解释后,才会执行 JS。此时,包含 HEREDOC 的原始 PHP 文件早已不复存在。

但是,您可以做的是在客户端操作 DOM,但您应该将其element.innerHTML视为document.write.

于 2013-10-16T14:50:20.130 回答
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/

于 2013-10-16T15:51:18.283 回答