我正在使用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: message的元素。它看起来像这样:
<h3 id="message"> </h3>
我期待的是在h3中得到"电子邮件已经存在",然而这并没有发生。JavaScript不会被执行。如果我使用完全相同的JavaScript代码,但把它放在前面或"onclick"请求,代码工作。
有一件事可能是相关的:我注意到JavaScript在结束HTML标签之后打印了我如何得到JavaScript代码被回显到HTML后执行?我读过几个线程,说它应该简单地运行,但我的没有。我尝试了大约50种不同的修复方法,但没有一种奏效。
代码:http://ideone.com/dmR42O
你提到过这个:
一个可能相关的东西。我注意到javascript是
这非常相关。任何Javascript必须包含在<html>
元素中(在</html>
之前)。但是,请确保Javascript出现在<h3>
之后。Javascript会在遇到它时运行,正如Marc在上面的评论中所说。
如果Javascript必须在前面,那么这样做:
window.onload=function(){
document.getElementById("message").innerText="Email already exists";
};
试一下:
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
缺少右括号}
- No
<body>
tags