1

我正在尝试创建一个自动完成输入框,当您单击内部输入时,会从数据库加载自动完成单词列表。我通过 AJAX 调用从数据库中很好地加载了单词列表,但是当我将它传递给自动完成函数时,它开始返回 404。

我不知道为什么数据在我的警报中显示正常,但无法正确自动完成?

$(document).ready(function() {
    $("#tags").click(function() {
        $.ajax({ 
            url: 'get_players.php', 
            success: function(data){
                alert(data); // This returns the correct string.
                $("#tags").autocomplete({
                    source: data
                });
            }
        });
    });
}); // END Document.ready.

更新:数据以字符串形式返回(我认为)。我想将其用于足球选秀程序,因此 data 是用逗号分隔的球员头衔列表。例子:

'Andy Dalton - QB Bengals', 'Adrian Peterson - RB Vikings', 'Tom Brady - QB Patriots'

这是我的 get_players.php

<?php
//Connect to the Database.
$mysqli = new mysqli("localhost","username","password", "draftboard");

// Check said connection.
if ($mysqli->connect_errno)
{
    print "An error has occured."; 
}

// Get all the players.
$result = $mysqli->query("SELECT * FROM players");

if($result->num_rows > 0) {

    // For each member of the group...
    for($i = 0;  $i < $result->num_rows; $i++)
    {
        $row = $result->fetch_assoc();
        echo "'" .$row['name'] . " - " . $row['position'] . " " . $row['team']."', ";
    }
    $result->close();
}
?>
4

1 回答 1

1

autocomplete需要一个 url、数组或函数。您当前正在传递一个字符串,因此只需使用它来将其转换为数组:

$("#tags").autocomplete({
    source: data.split(",")
});
于 2013-07-30T21:00:55.840 回答