Имам поле за въвеждане, което превръщам в автоматично попълване на 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);
}
})