jQuery自动完成不适用于json

时间:2013-06-06 20:25:57

标签: php jquery ajax arrays json

如果我调用php文件,因为源代码不会自动完成,但是如果我使用数组就可以了。

PHP

$query = mysql_query($req);

while($row = mysql_fetch_assoc($query))
    {
        $results[] = array('login' => $row['login']);
    }

echo json_encode($results);

//[{"login":"lleal"},{"login":"mmoura"},{"login":"vmatos"},{"login":"csamante"}]

HTML

$( "#logine" ).autocomplete(
{
     source: 'loginsearch.php',
})

如果我将json转换为这样的数组,它可以工作:

    var lista = [];
    $.ajax({
        type: "GET",
        dataType: "json",
        url: "loginsearch.php",
        success: function (data) {
            $.each(data, function (index, data) {
                lista.push(data.login);
            });
        }
    });   


$( "#logine" ).autocomplete(
{
     source: lista,
})

我只花了一整天的时间来讨论这个想法?

1 个答案:

答案 0 :(得分:2)

您的JSON必须包含变量'label'和'value'才能使自动完成工作。

while($row = mysql_fetch_assoc($query))
    {
        $results[] = array('label' => $row['login'], 'value' => $row['login']);
    }

或任何您希望显示为值和标签的内容。