这是我的第一个ajax程序之一。我不知道为什么我的$username
变量仍未定义。在username_availability.php
文件中。这是我的Jquery代码:
$(document).on('keyup', "#username", function(e){
$.ajax({
type: "POST",
url: "../database/username_availability.php",
data: {username:$('#username').val()}
});
var url = 'database/username_availability.php';
$('#username_check').html('loading…').load(url);
e.preventDefault();
});
这是我的php文件:
include_once "../my_classes/form/connection.php";
$connection = new \mysqli(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
if (!$connection) die ('Connection failed');
$username = ($_POST['username']);
$username = $connection->real_escape_string($username);
print_r($username);
$query = "SELECT * FROM users WHERE username='$username'";
$result = $connection->query($query);
if (!$result) die($connection->error);
foreach ($result as $results=>$i)
echo $results;
我仍然在$username = ($_POST['username']);
行上获得未定义的索引。
答案 0 :(得分:4)
只需更改你的ajax电话:
data: {text:$('#username').val()}
-------^^^^
有了这个
data: {"username":$('#username').val()}
答案 1 :(得分:2)
在您的ajax文件中,您正在调用用户名" text",而不是"用户名"但是在PHP中你正在寻找"用户名" POST数组中的索引。
这是因为在ajax调用中你必须为数据命名并将其分配如下:
data: {username:$('#username').val()}
或者你可以改变你的PHP:
$username = ($_POST['text']);
答案 2 :(得分:2)
尝试将值设置为变量,就像
一样var username = $('#username').val();
data: { 'username' : username }
现在看起来好多了
答案 3 :(得分:1)
您的帖子数据:
data: {text:$('#username').val()}
作为密钥发送text
在服务器上,您可以获得$ _POST [' text']
或者
您可以更改文字'到'用户名'