我function error()的工作不是从 php 代码调用。所以请帮助我解决这个问题。在 php 代码之外调用时,fucntion 可以正常工作。但是在 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>
Run Code Online (Sandbox Code Playgroud)
将该 PHP 块放在错误尝试的div 元素之后。您正在调用 error() 函数,该函数甚至在浏览器中创建该元素之前就对其进行操作。
正如评论中所建议的那样,与其使不必要的 JavaScript 函数调用复杂化,只需将该 PHP if 放入<div id="wrong-attempt"></div>元素中,然后简单地打印出消息或整个元素,甚至不发送此div(如果有)没有错误。
并将您的 JavaScript 放入页脚,就在结束</body>标记之前,正如评论中所建议的那样。