Ajax发布到php文件无效

时间:2015-12-09 14:14:58

标签: php jquery ajax

这是我的第一个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']);行上获得未定义的索引。

4 个答案:

答案 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']

或者

您可以更改文字'到'用户名'