【发布时间】:2017-02-19 06:23:36
【问题描述】:
我有一个两难境地(我还没有找到解决办法)。出于某种原因,PHP 不想检查我的文档中 <body> 标记底部是否有 $_POST["login"]。
如果将它放在文档的最顶部,甚至是<body> 标记的顶部,它就会起作用。但是,如果我把它放在文档的顶部 /<body> 标签,输出 JavaScript 将不会执行!
例如,这是文档(PHP 不会执行):
<form>
<span id="example-element">Displaying.</span>
<input type="text" name="example">
<button type="submit" name="login">Login</button>
</form>
<?php
if(isset($_POST["login"])){
echo "
<script>
document.getElementById('example-element').style.display = 'block';
</script>"
}
?>
但是,如果我要做这样的事情(PHP 将执行):
<?php
if(isset($_POST["login"])){
echo "
<script>
document.getElementById('example-element').style.display = 'block';
</script>"
}
?>
<form>
<span id="example-element">Displaying.</span>
<input type="text" name="example">
<button type="submit" name="login">Login</button>
</form>
但由于 JavaScript 的编译方式,它会抛出一个错误,说明它无法在 null 元素上设置样式。
我不知道如何解决这个难题,因此感谢所有帮助!
干杯。
【问题讨论】:
-
<span id="example-element" style="<?php if isset($_POST['login']) echo 'display: block'; ?>">Displaying.</span>- 不需要使用 Javascript 设置显示样式,PHP 可以处理。这里的一个假设是$_POST["login"]实际上包含一些东西。但是,如果确实在脚本开始时设置了变量,并且在执行期间未进行调整,则仍应在脚本结束时设置它。 -
我同意 Dhruv Saxena 的观点,不需要 js。
<?php if(isset($_POST['login'])){echo "<span id=\"example-element\">Displaying.</span>";}?> -
另外,如果你想在 PHP 中显示和隐藏,为什么不从 PHP 中显示和隐藏呢?
<? if ..... {?><span id="example-element">Displaying.</span><? } ?> -
实际上,在我的情况下 JS 非常必要。我刚刚把 PHP 缩小了很多,我只是向你展示了必要的东西
-
好吧,如果需要的唯一检查是
isset($_POST['login']),那么设置相关元素的display属性不需要JS。
标签: javascript php html