автозаполнение jquery не работает с данными JSON - PullRequest
7 голосов
/ 20 ноября 2010

Мой код PHP возвращает данные JSON в автозаполнение jquery, но автозаполнение не работает

Автозаполнение Jquery

$("input#txtaddkey").autocomplete({
            source: "keyword.php",
                minLength: 2
        });

Код PHP

$fetch = mysql_query("SELECT * FROM o_keyword where keyword like '%" . $query . "%'"); 

    while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
        $row_array['id'] = $row['id'];
        $row_array['keyword'] = $row['keyword'];

        array_push($return_arr,$row_array);
    }
echo json_encode($return_arr);

Вывод данных JSON

[{"id":"2","keyword":"Games"},{"id":"3","keyword":"Goa"}]

И, набирая "Ga", я получаю пустой тег li в передней части.

Ответы [ 2 ]

27 голосов
/ 20 ноября 2010

От:

Ваш JSON должен содержать label или value (или оба). Измените keyword на value, и оно должно работать нормально.

1 голос
/ 02 апреля 2014

Ваш код должен быть слегка изменен.

 while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
    $row_array['value'] = $row['id'];
    $row_array['label'] = $row['keyword'];

    array_push($return_arr,$row_array);
}

echo json_encode ($ return_arr);

Теперь ваш формат JSON будет

[{"value":"2","label":"Games"},{"value":"3","label":"Goa"}]
...