PHP脚本echo isn't执行



我正在使用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

最新更新