问题: 当我使用.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);
?>
答案 0 :(得分:2)
您只发送了一个值:
data: username
但是服务器端代码需要一个键/值对:
$_POST['username']
发送一个带有该值的键的对象:
data: { username: username }
答案 1 :(得分:1)
将data: username
更改为{username: username}
因为传递数据需要索引。
了解有关jquery帖子http://api.jquery.com/jquery.post/
的更多信息