猿问

如果验证失败,如何使用 ajax 和 php 以模式形式显示错误,如果成功则重定向到其他页面

我在登录页面中工作,当用户单击登录按钮时,这是一种模态形式,模态形式出现在这里是吗


<!-- Signin Window Code -->

            <div class="modal fade" id="signup" tabindex="-1" role="dialog" aria-labelledby="myModalLabel2" aria-hidden="true">

                <div class="modal-dialog">

                    <div class="modal-content">

                        <div class="modal-body">

                     <form action ="login.php" method="POST" id="frmLogin">

                            <div class="new-logwrap">   

                                <div class="form-group">

                                <label>Email</label>

                                <div class="input-with-icon">

                                <input type="email" class="form-control" name="login_email" id = "email_login" placeholder="Enter Your Email" required>

                                <i class="theme-cl ti-email"></i>

                                    </div>

                                </div>

                                <div class="form-group">

                                    <label>Password</label>

                                    <div class="input-with-icon">

                                        <input type="password" class="form-control" name="login_pass" id = "pass_login" placeholder="Enter Your Password" required>

                                        <i class="theme-cl ti-lock"></i>

                                    </div>

                                </div>

                                <div class="form-groups">

                                    <button type="submit" name="login" id="logBtn" class="btn btn-primary theme-bg full-width .login">Login</button>

                                </div>                  

                        <!-- error message will show here -->

                                <div id="ack"></div>

当用户验证失败时,它会在模态窗体上显示错误,但问题是如果验证成功,要重定向的页面将在模态窗体上被覆盖,即它不是重定向,而是在模态本身上显示下一页,这是我的 php 代码


德玛西亚99
浏览 115回答 1
1回答

杨__羊羊

您不能直接从 php 重定向,因为您使用了 ajax,响应将发送回success-functionajax。现在,要解决这个问题,请执行以下操作:代码:if($row[0] > 0){&nbsp; &nbsp; echo "success";//send back to ajax}else{&nbsp; &nbsp; &nbsp;echo "failed";//send back to ajax}并在您的 ajax 端检查出现了哪些值,并根据该值重定向或显示错误消息。阿贾克斯代码:$('button#logBtn').click(function() {&nbsp; if ($("#email_login").val() == "" || $("#pass_login").val() == "")&nbsp; &nbsp; $("div#ack").html("please enter username or password");&nbsp; else&nbsp; &nbsp; $.post($("#frmLogin").attr("action"),&nbsp; &nbsp; &nbsp; $("#frmLogin :input").serializeArray(),&nbsp; &nbsp; &nbsp; function(data) {&nbsp; &nbsp; &nbsp; &nbsp; var datas = $.trim(data); //remove whitespaces if any&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if (datas == "success") {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.location.href = "register.php"; //redirect&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("div#ack").html('<div class="alert alert-danger text-center" role="alert">Enter correct email or password!</div>'); //show error message&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; });&nbsp; $("#frmLogin").submit(function() {&nbsp; &nbsp; return false;&nbsp; });});
随时随地看视频慕课网APP
我要回答