weixin_33682719 2017-05-26 01:04
浏览 20

Ajax表单无所事事

I have a form using Ajax that is suppose to show an error to the user when something is incorrect when the login. When I click the submit button nothing happens. I hate asking Stack overflow but you got to do what you got to do. And yes, I have Apache configured to not need file extensions. This is the tutorial I am following: https://www.youtube.com/watch?v=L7Sn-f36TGM

Login Script:

    require("dbh.php");

  if(isset($_POST['submit'])) {
    $email = $_POST['email'];
    $pwd = $_POST['pwd'];

    $errorEmpty = false;
    $errorEmail = false;
    $errorWrong = false;

    if(empty($email) || empty($pwd)) {
      echo "<p class='loginText'>Please Enter an Email Address and Password!</p>";
      $errorEmpty = true;
    } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      echo "<p class='loginText'>Please Enter a Valid Email Address!</p>";
      $errorEmail = true;
    } else {
      echo "Success!";
    }
    } else {
      echo "<p class='loginText'>An Error Occurred!</p>"
    }
    header("/login?test");

loginForm.js

$(document).ready(function() {
  $("#loginFormInput").submit(function(event) {
    event.preventDefault();
    var email = $("#emailLogin").val();
    var pwd = $("#pwdLogin").val();
    $(".errorText").load("../php-scripts/login", {
      email: email,
      pwd: pwd
    });
  });
});

HTML Form:

<p class="errorText"></p>
<form action="../php-scripts/login.php" method="post" id="loginFormInput">
    <input type="text" name="email" class="textInput" id="emailLogin" placeholder="Email" maxlength="512"> <br>
    <input type="password" name="pwd" class="textInput" id="pwdLogin" placeholder="Password" maxlength="1024"> <br>
    <p class="rememberText">Remember Me:</p>
    <input type="checkbox" name="remember" class="rememberBox"> <br>
    <input type="submit" value="Login" name="submit" class="submitInput" title="Login">
  </form>
  • 写回答

2条回答 默认 最新

  • weixin_33691817 2017-05-26 01:12
    关注

    Your PHP code is doing if (isset($_POST['submit'])), but when you do the AJAX submission you don't provide a submit parameter. You need to add that to the parameters:

    $(".errorText").load("../php-scripts/login", {
      email: email,
      pwd: pwd,
      submit: 'Login'
    });
    

    Or you could remove that check from the PHP, if that script is only used to process the AJAX requests.

    评论

报告相同问题?