Stumped: невозможно получить результаты для отображения с автозаполнением пользовательского интерфейса jQuery - PullRequest
0 голосов
/ 03 апреля 2011

Я набросал простой пример с автозаполнением jquery и не могу заставить его работать. Я понятия не имею, что не так, нет ошибок и нет ничего плохого в моем JSON, но результаты не отображаются.

Вот мой код

<div class="demo">

<div class="ui-widget">
    <label for="title">Title: </label>
    <input id="test" />
</div>


<script>
$(function() {
        $( "#test" ).autocomplete({
            source: "/searchbackend.php"
        });
});
</script>

JSON:

{"title":["Metroid: Other M"]}

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011

Из тонкой инструкции (относительно опции source):

Когда используется строка, плагин автозаполнения ожидает, что эта строка будет указывать на ресурс URL, который будет возвращать данные JSON. [...] Данные могут быть в том же формате, что и локальные данные, описанные выше.

А для локальных данных:

Локальные данные могут быть простым массивом строк или содержать объекты для каждого элемента в массиве со свойством метки или значения или обоими. Свойство метки отображается в меню предложений. Значение будет вставлено в элемент ввода после того, как пользователь выберет что-то из меню.

Итак, ваш возврат в JSON должен быть либо простым массивом строк, либо массивом объектов, подобным этому:

[
    { label: 'Shown to humans', value: 'Value for the text input' },
     ...
] 
1 голос
/ 03 апреля 2011

Полагаю, ваш вывод должен быть таким: ["HELLO","HOW","DO","YOU","DO","?"], поэтому для вывода json используйте массив 1d.

$array = array("HELLO", "HOW", "DO", "YOU", "DO", "?");

echo json_encode($array);

Человек .. это прекрасно работает.

$array = array(
                array("label" => "HELLO", "value" => "H"), 
                array("label" => "HOW", "value" => "H"), 
                array("label" => "DO", "value" => "D"),
                array("label" => "YOU", "value" => "Y"),
                array("label" => "DO", "value" => "D"));

echo json_encode($array);

Также попробуйте изменить source: "/searchbackend.php" на source: "searchbackend.php"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...