我使用PHP打印一个非常简单的JavaScript,它没有被执行。如果我打印数据,我会在HTML文件的末尾看到以下脚本(完全符合要求):
<script type="text/javascript">
document.getElementById("message").innerText="Email already exists";
</script>
我也尝试过使用innerHTML="Email already exists";
。
这是用PHP打印的:
echo "<script type=\"text/javascript\">
document.getElementById(\"message\").innerText=\"Email already exists\";
</script> ";
在我的HTML中,我有一个具有ID:消息的元素。它看起来像这样:
<h3 id="message"> </h3>
我所期待的是&#34;电子邮件已经存在&#34;在h3中,然而这并没有发生。 JavaScript未执行。如果我使用完全相同的JavaScript代码,但将它放在前面或在&#34; onclick&#34;请求,代码工作。
有一点可能是相关的:我注意到在结束HTML标记之后打印了JavaScript。
如何在回显到HTML后执行JavaScript代码?我已经阅读了几个说它应该简单运行的线程,但是我没有。我尝试过大约50种不同的修复方法,但都没有。
答案 0 :(得分:1)
你提到了这个:
有一件事可能是相关的。我注意到javascript是 关闭html标签后打印。
这非常重要。任何Javascript都必须包含在<html>
元素中(</html>
之前)。但是,请确保在<h3>
之后显示Javascript。正如Marc在上面的评论中所说,Javascript会在遇到它时运行。
如果Javascript必须在之前,请执行以下操作:
window.onload=function(){
document.getElementById("message").innerText="Email already exists";
};
答案 1 :(得分:0)
试试这样:
echo '<h3 id="message"> Email already exists!</h3>';
<!DOCTYPE html>
<html>
<body>
<form id="submitform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input id="logIn_email_input" name="email" type="text" placeholder="Enter e-mail address" autocomplete="off">
<input id="logIn_password_input" name="password" type="password" placeholder="Enter password" autocomplete="off">
<input id="logIn_submit" type="submit" name="logIn_submit">SIGN UP</button>
</form>
<?php
$query = mysql_query("SELECT userid FROM users WHERE email = '". $email ."'");
if (mysql_num_rows($query) > 0) {
echo '<h3 id="message"> Email already exists!</h3>';
}
?>
<body>
</html>
你这里有很多问题(可能是错别字?)
action="<?php echo $PHP_SELF;?>"
应为action="<?php echo $_SERVER['PHP_SELF']; ?>"
<button id="logIn_submit"
应为<input id="logIn_submit" type="submit" name="logIn_submit">
<? php
的额外空间应为<?php
If statement
缺少右括号}
<body>
代码