2016-04-26 113 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