Я пытаюсь сделать JQuery AutoComplete JSON-данные с помощью CakePHP.Мой код на самом деле работает.Он показывает автодополнение, как и ожидалось, но не работает:
- выбранный элемент не отображается в окне поиска после его выбора (пусто).
- the 'Нет результата'не отображается, если данные не существуют.
Вот код:
// поисковое действие моего контроллера клиента
function search(){
$this->Customer->recursive = -1;
$customers = $this->Customer->find('all', array(
'conditions'=>array('Customer.nama LIKE'=>$this->params['url']['q'].'%'),
'fields'=>array('id', 'name', 'telp', 'address'))
);
$this->set('customers', $customers);
Configure::write('debug', 0);
$this->layout = 'ajax';
}
// my search.ctp
<?php
if(!empty($customers)) {
$data = array();
foreach ($customers as $customer){
$data[] = $customer['Customer'];
}
echo json_encode($data);
}
else echo 'No result';
?>
// my js file
$().ready(function () {
$("#search-txtbox").autocomplete("/customers/search",
{
parse: function(data){
var parsed = [];
for (var i=0; i < data.length; i++) {
parsed[i] = {
data: data[i],
value: data[i].name //the search item
};
}
return parsed;
},
formatItem: function (row, i, max) {
var str = row.name + ' (Telp: '+ row.telp +')' + '<br />';
str += row.address;
return str;
},
formatResult: function (row) {
return row.name;
},
minChars: 2,
max: 0,
width: 224,
scrollHeight: 420,
dataType: 'json'
}
);
});
Пожалуйста, помогите мне изменитькод.Спасибо!