我使用jQuery来动画div中的下拉符号。注册表单使用PHP来检查用户是否存在于数据库中。但是,如果我回一些东西,下拉菜单就会消失,您必须再次单击它才能看到错误消息。下面是登录的样子:
<form method="POST">
<input type="text" name="username" placeholder="Username" required>
<input type="password" name="password" placeholder="Password" required>
<input type="submit" name="button" value="Sign in">
</form>
<?php
session_start();
$username = $_POST["username"];
$password = $_POST["password"];
include("connect.php");
if($username && $password){
$password = md5($password);
$getquery = mysql_query("SELECT * FROM users WHERE username='$username' AND password = '$password'");
$numrows = mysql_num_rows($getquery);
if($numrows != 0){
setcookie('username', $username, time()+3600);
} else {
echo "Invalid username.";
}
}
?>
jsfiddle: http://jsfiddle.net/3rr9w/1/
如你所见,当你按下提交按钮时,下拉菜单又会上升。
正如我在评论中所说的,我建议你使用ajax调用(只需搜索谷歌jquery ajax调用php)。
为了在不使事情变得更复杂的情况下回答当前的问题,请在代码末尾添加以下内容:
<script>
<?php
if ($_POST['username']) {
echo 'var postBack = true;';
} else {
echo 'var postBack = false;'
}
?>
if (postBack) {
$("#signin").show();
}
</script>
- 你可以在默认情况下使登录可见,如果postBack为false则隐藏登录。