Ajax没有得到PHP Echo

时间:2016-03-02 22:34:49

标签: javascript php jquery ajax

问题:当我点击登录时,它总是登录失败。但是,如果我只使用PHP打开HTML文件,它可以正常工作。所以我认为问题是Ajax。 我使用Xampp和PHP 7

这是HTML文件

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="Login.js" ></script>
  </head>
  <body>
    <div class="err" id="errDialog">

    </div>
    <form action="" method="post" id="login_form">
      Username
      <input type="text" name="username" id="username" >
      Password
      <input type="text" name="password" id="password" >
      <input type="submit" name="login" id="login" value="Login">
    </form>
  </body>
</html>

这是Javascript文件

$(document).ready(function() {
  $('form').submit(function(event) {
    event.preventDefault();
    var form = $(this);
    $.ajax({
        url: './Login.php',
        type: 'POST',
        dataType: 'script',
        data: form.serialize(),
      })
      .done(function(response) {
        if (response == 1) {
          $('#errDialog').html("Login success")
        } else {
          $('#errDialog').html("Login fail")
        }
      })

这是PHP文件

$con = mysqli_connect('localhost', 'root', '', 'login');
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
if (isset($_POST['login'])) {

    $username = mysqli_real_escape_string($con, $_POST['username']);
    $password = mysqli_real_escape_string($con, $_POST['password']);

    $query = "select * from members where username='$username' AND password='$password'";

    $run_query = mysqli_query($con, $query);

    $num_rows = mysqli_num_rows($run_query);

    if ($num_rows == 1) {
        $_SESSION['sesUsername'] = $username;
        echo 1;
    } else {
        echo 0;
    }
}

问题解决了。我将提交类型从输入更改为按钮。删除isset('#login')部分,没有必要。并为按钮点击事件重写javascript ajax。

0 个答案:

没有答案