javascript - else if 在ajax登录表单中不起作用

标签 javascript php jquery ajax

我通过查看google并结合proccess.php,提交表单和ajax制作了下面的代码,但我不知道我的错误在哪里。该代码似乎不起作用。

process.php

<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

  //check login status and etc

      if ($data['status'] == 'ok' && $data['loggedinuser']['username'] == "$username") {  
          echo 'ok';
      } elseif ($data['message'] == 'checkpoint' && $data['status'] == 'fail') {
          echo 'checkpoint';
      } elseif ($data['errortype'] == 'invaliduser' && $data['status'] == 'fail') {
          echo 'wrongusername';
      } elseif ($data['errortype'] == 'badpassword' && $data['status'] == 'fail') {
          echo 'wrongpassword';
      } elseif ($data['errortype'] == 'unusablepassword' && $data['status'] == 'fail') {
          echo 'unusablepassword';
} else {
          echo '';
}
?>

index.php

$(document).ready(function() {
  $("#loginform").submit(function() {
    if ($('#username').val().length > 3 || $('#password').val.length > 3) {
      var pdata = $(this).serialize();
      $.ajax({
        url: "proccess.php",
        data: pdata,
        type: "POST",
        beforeSend: function() {
          $("#pesan").html("<h4>Loading...</h4>");
        },
        success: function(pesan) {
          console.log(pesan);
          if (console.log(pesan) == "ok")
            $("#pesan").html("<h4>Login Success...<meta http-equiv='refresh' content='1'; url=redirect.php'></h4>");
          else if (console.log(pesan) == "gagal")
            $("#pesan").html("<h4>Error!</h4>");
          else if (console.log(pesan) == "wrongusername")
            $("#pesan").html("<h4>Wrong Username!</h4>");
          else if (console.log(pesan) == "wrongpassword")
            $("#pesan").html("<h4>Wrong Password!</h4>");
          else if (console.log(pesan) == "checkpoint")
            $("#pesan").html("<h4>need checkpoint</h4>");
          else if (console.log(pesan) == "accountblocked")
            $("#pesan").html("<h4>your account blocked.</h4>");
          else
            $("#pesan").html("<h4>Invalid username and/or password.</h4>");
        }

      });
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header id="pesan" class="text-align-center">
  <h4>Login to your account</h4>
</header>
<form class="no-margin" method="POST" id="loginform">
  <fieldset>
    <div class="form-group">
      <label for="username">Username</label>
      <div class="input-group">
        <span class="input-group-addon"><i class="fa fa-user"></i></span>
        <input name="username" id="username" type="username" class="form-control input-lg input-transparent" placeholder="Username" required>
      </div>
    </div>
    <div class="form-group">
      <label for="password">Password</label>
      <div class="input-group input-group-lg">
        <span class="input-group-addon"><i class="fa fa-lock"></i></span>
        <input name="password" id="password" type="password" class="form-control input-lg input-transparent" placeholder="Password" required>
      </div>
    </div>
  </fieldset>
  <div class="">
    <button id="masuk" type="submit" class="btn btn-block btn-lg btn-danger">
      <span class="small-circle"><i class="fa fa-caret-right"></i></span>
      <small>Sign In</small>
    </button>
  </div>
</form>

最佳答案

需要在 PHP 中修复:
请接收Javascript发送的数据:

$data = $_REQUEST['data'];


Javascript 中所需的修复:
如下更改您的 if 语句:

if (pesan == "ok"){
    $("#pesan").html("<h4>Login Success...");
    window.location = "redirect.php";
}
else if (pesan == "gagal") 
    $("#pesan").html("<h4>Error!</h4>");
else if (pesan == "wrongusername") 
    $("#pesan").html("<h4>Wrong Username!</h4>");
else if (pesan == "wrongpassword") 
    $("#pesan").html("<h4>Wrong Password!</h4>");
else if (pesan == "checkpoint") 
    $("#pesan").html("<h4>need checkpoint</h4>");
else if (pesan == "accountblocked") 
    $("#pesan").html("<h4>your account blocked.</h4>"); 
else 
    $("#pesan").html("<h4>Invalid username and/or password.</h4>");


请注意如何使用 Javascript 完成重定向:

window.location = "redirect.php";

关于javascript - else if 在ajax登录表单中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41770623/

相关文章:

javascript - 如何在 iframe 或 lightbox 中查看 google drive 文档链接

javascript - 如何通过自定义下拉菜单获得自动完成功能?

javascript - AngularJS 指令双向绑定(bind)在 Ionic 中不起作用

PHP通过将天数添加到可变日期来计算 future 日期

php - 从 MySQL 时间戳列以 d-m-Y 格式输出日期

php - 使用selectbox php和mysql删除客户信息

javascript - 如何在使用 jQuery .html 时停止闪烁

javascript - 给活跃的 li 元素一个不同的背景

c# - 自定义 Ajax 工具包 Html 编辑器控件

jQuery - 过滤掉找到的第一个和第二个元素的最有效方法是什么?