У меня есть поле ввода, которое я превращаю в автозаполнение jqueryUI:
$( "#autocomplete" ).autocomplete({
autoFocus: true,
source: mylist
});
Переменная mylist — это просто строка в формате массива ['Value1','Value2,'Blah']
, которую я изначально просто жестко запрограммировал в скрипте.
Теперь я хочу, чтобы переменная mylist была результатом ajax-вызова функции в моем приложении cakephp. Функция в основном выглядит следующим образом, она просто захватывает все данные в виде списка и кодирует их в json.
public function source() {
$this->layout = 'ajax';
$countries=$this->Country->find('list',array('fields'=>'Country.country'));
ChromePhp::log($countries);
echo json_encode($countries);
}
Это выводит:
{"1":"Afghanistan","2":"Albania ","3":"Algeria ","5..
Моя проблема заключается в том, чтобы получить вывод этой функции (который заканчивается обратным вызовом успеха ajax как «данные») в правильном формате для размещения в массиве параметров автозаполнения.
Я могу дойти до консоли, регистрируя каждое значение, но я в тупике. В основном хватаясь за соломинку за правильный синтаксис.
$.ajax({
type: "GET",
dataType: "json",
url: "/source/",
success: function(data){
/*
magic array string creation code would go here instead of my code below...
*/
$.each(data, function(i, item) {
console.log(item);
});
console.log('data',data);
}
})