PHP脚本回显没有被执行

时间:2014-03-22 21:47:14

标签: javascript php html echo

我使用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种不同的修复方法,但都没有。

代码:http://ideone.com/dmR42O

2 个答案:

答案 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>代码