2015-12-26 2 views
0

У меня возникли проблемы с доступом к данным JSON, предоставленным скриптом для автозаполнения, и задавался вопросом, может ли кто-нибудь помочь.jQuery UI Autocomplete Responce Data

Это код Javascirpt, который имеет дело с коробкой автозаполнения:

$(function() { 
      $("#student_search").autocomplete({ 
        source: "functions/find_student.php", 
        delay: 100, 
        minLength: 1, 
        select: function(event, ui) { 

         student_result = ui; 

         $('#student_search').val(student_result[0].label); 
         highlightStudent(student_result.label, student_result.value.id, student_result.value.house); 
        } 
      }); 
     }); 

и пример ответа является:

[{"label":"larry winkles","value":{"id":1,"house":"s"}}] 

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

Uncaught TypeError: Cannot read property 'label' of undefined 

Спасибо за любую помощь.

Alex

ответ

0

Вы пробовали, как это:

select: function(event, ui) { 
    var label = ui.item.label; 
    var value = ui.item.value; 
} 

Сообщите мне о любых проблемах.

+0

Спасибо, но, как и все, в результате он возвращает [Объект объекта]. EDIT: Оказывается, что он работает, но по какой-то причине его установка значения текстового поля для объекта [Object object] и все остальное работают идеально нормально! Я проверяю, что я не использую назначенные имена переменных или что-то еще, но я уверен, что им нет. В любом случае, это новая проблема, так что скажите спасибо и дайте ей немного исправить :) Спасибо всем! –

0

У меня есть сомнения по поводу природы Ui переменной, может быть, вы можете проверить его с помощью console.info(ui), если вы были на Firefox.

Я полагаю, что проблема заключается в строке:

highlightStudent(student_result.label, student_result.value.id, student_result.value.house); 

заменить:

student_result 

по:

student_result[0] 
+0

Благодарим за это, однако это, к сожалению, дало мне ту же ошибку :( –

+0

Если переменная ui имеет тип String, тогда вы можете преобразовать ее в массив с помощью 'student_result = eval (ui);' – ikken

+0

. Пользовательский интерфейс переменной имеет tpye данные JSON, из json_encode ($ result); php line. –