jquery val()和serialize()

时间:2016-03-08 17:05:04

标签: php jquery

问题: 当我使用.serialize()时,它可以正常工作。 当我使用.val()时,它会在控制台上显示:

failed 
admin 

admin是用户名,但是jquery没有得到来自php的回声我认为

Jquery文件

$(document).ready(function() {
$('#username').blur(function(event) {
      // var submitData = $('#login_form').serialize();
        var username=$("#username").val();
        $.ajax({
          url: './checkUsername.php',
          type: 'POST',
          data: username
        })
        .done(function(res) {
          if (res == 1) {
            $('#checkUsername').html("User exists");
            console.log("success");
          } else {
            $('#checkUsername').html("User do not exists");
            console.log("failed");
            console.log(username);
          }

        })});

Php文件

<?php
require_once 'config.php';

$username = $_POST['username'];

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

if ($stmt = mysqli_prepare($con, $query)) {
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);

    if (mysqli_stmt_num_rows($stmt) == 1) {
        echo 1;
    } else {
        echo 0;
    }

    mysqli_stmt_close($stmt);
}
mysqli_close($con);
?>

2 个答案:

答案 0 :(得分:2)

您只发送了一个值:

data: username

但是服务器端代码需要一个键/值

$_POST['username']

发送一个带有该值的键的对象:

data: { username: username }

答案 1 :(得分:1)

data: username更改为{username: username}

因为传递数据需要索引。

了解有关jquery帖子http://api.jquery.com/jquery.post/

的更多信息