如何在登录失败后保持模态窗口打开?

时间:2015-10-09 21:40:28

标签: javascript php twitter-bootstrap

使用bootstrap,我从Navbar打开了一个用于登录的模态窗口。如果登录凭据失败,则模式将与凭据成功时的模式消失相同。在运行PHP验证过程之后,我是否可以重新显示模式,以便用户再次尝试登录?非工作相关代码是:

PHP验证码:

<head>
<?php
if(PassHash::check_password($row["password"], $_POST['pwd1']))
 $_SESSION["login"] = 1;
 $_SESSION['btnhs'] = 3; 
} else {
 $_SESSION["login"] = 0;
 $loginErr ="Username or password incorrect.";
?> 
 <script type="text/javascript">
  $(function() {
   $('#myModal').modal('show');
  });
 </script>                          
<?php
}
</head>

HTML:

<!-- Modal -->
  <div class="modal fade" tabindex="-1" id="myModal" role="dialog" data-backdrop="static">
    <div class="modal-dialog" data-backdrop="static">

      <!-- Modal content-->
      <div class="modal-content">
        <div class="modal-header" style="padding:35px 50px;">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4><span class="glyphicon glyphicon-lock"></span> Login</h4>
        </div>
        <div class="modal-body" style="padding:40px 50px;">
            <form method="post"  autocomplete="on" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
            <div class="form-group">
              <label for="usrname"><span class="glyphicon glyphicon-user"></span> Username</label>
              <input type="text" class="form-control" required="" name="uname" id="uname" autofocus="" placeholder="Enter username">
            </div>
            <div class="form-group">
              <label for="psw"><span class="glyphicon glyphicon-eye-open"></span> Password</label>
              <input type="password" class="form-control" required="" name="pwd1" id="pwd1" placeholder="Enter password">
              <span class="error" style="color: red"><?php echo $loginErr;?></span><br>
            </div>
            <div class="form-actions">
              <button type="submit" name="login" class="btn btn-success btn-block"><span class="glyphicon glyphicon-log-in"></span> Login</button>
            </div>
         </form>
        </div>

我正在尝试在登录时从不成功的密码调用javascript片段,但这不起作用。任何人都可以看到这有什么问题并提供解决方案吗?感谢。

1 个答案:

答案 0 :(得分:4)

您正在同步提出请求。 如果要保持模态打开,则需要向服务器发出AJAX请求,而不是完全提交表单。 例如,使用jQuery,您可以使用:http://api.jquery.com/jquery.post/