我正在尝试使用Jquery自动完成从我的SQL表中获取数据,当我搜索数据时,正确地返回数据但是没有以图形方式显示下拉框。
我的search.ctp
<?php use Cake\Routing\Router; ?>
<?php echo $this->Form->input('id', ['type' => 'text']); ?>
<script>
jQuery('#id').autocomplete({
source:'<?php echo Router::url(array('controller' => 'Invoices', 'action' => 'search')); ?>'
});
</script>
我的搜索功能
public function search()
{
if ($this->request->is('ajax'))
{
$name = $this->request->query['term'];
$resultArr = $this
->Invoices
->find()
->where(
['Invoices.id LIKE' => ($name . '%')],
['Invoices.id' => 'string']
);
$resultsArr = [];
foreach ($resultArr as $result) {
$resultsArr[] = (strval($result['id']));
}
$this->set('invoices', $resultsArr);
// This line is what handles converting your array into json
// To get this to work you must load the request handler
$this->set('_serialize', ['invoices']);
}
}
你可以看到它正在返回数据但没有下拉。
答案 0 :(得分:0)
在我的搜索功能中序列化数据之前添加json_encode($resultsArr);
解决了这个问题。