2016-04-26 114 views
0

我的function error()不能从php代码调用。 好心帮我解决这个问题。当在php代码外部调用时,fucntion可以正常工作。但是当调用insisde php代码时没有显示输出。JavaScript函数不能在php代码中调用

<html> 
<head> 
    <title>Login Page</title> 
    <link rel="stylesheet" href="css/design.css"> 
    <script type="text/JavaScript"> 
     function error(){ 
     document.getElementById("wrong-attempt").innerHTML="Wrong Username Or Password"; 
     } 
    </script> 
    <?php 
     if(isset($_POST['submit'])){ 
      echo '<script> error(); </script>'; 
     } 
    ?> 
</head> 
<body background="pics/background.jpg"> 
<div class="wrapper"> 
<center> 
    <div class="form-wrapper"> 
     <form action="index.php" method="POST"> 
      <div> 
      </div> 
       <h1>User Login</h1> 
      <div> 
       <img src="pics/login.png" width="100" height="100"/> 
      </div> 
      <div> 
       <input name="ID" placeholder=" Username" type="text" required="true"/></br> 
       <input name="pass" placeholder=" Password" type="password" required="true"></br> 
       <input type="image" src="pics/loginb.png" name="submit" value="Login" width="100"/> 
      </div> 
     </form> 
      <div id="wrong-attempt"> 
      </div> 
    </div> 
<center/> 
</div> 
</body>' 
</html> 
+0

用'<?php if(!empty($ _ POST)){echo'

Wrong Username Or Password
';}?>'替换'
'并不容易,并且删除头部的javascript和php。 **注意** JavaScript头将减慢你的页面加载速度。在这种情况下,载入的内容并不多,但是如果载入的速度更慢,它会变慢 – SuperDJ

+0

您的函数被调用得太快,要么将脚本放在底部,要么将其包装在domready处理程序中。 – fedeghe

+0

如果您曾经计划使用脚本提交,也从来不会调用任何形式的'name =“submit”' – mplungjan

回答

4

把那PHP块错误的尝试 div元素后。你正在调用error()函数,它在甚至在浏览器中创建之前操纵该元素。

由于在评论中也提出了这个建议,而不是使用一个不必要的JavaScript函数调用复杂化,只需将该PHP放入<div id="wrong-attempt"></div>元素中,然后只是将该消息或整个元素打印出来以便不发送这div如果没有错误。

并且在关闭</body>标记之前将JavaScript放入页脚,正如评论中所建议的那样。

+0

实际上,为了使代码更好地被读取,将HTML放在HTML的底部,就在'' – RiggsFolly