jQuery自动完成数据已返回但未显示

时间:2017-11-13 21:32:14

标签: php jquery css cakephp-3.0 jquery-ui-autocomplete

我正在尝试使用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']);
    }
}

你可以看到它正在返回数据但没有下拉。

enter image description here

1 个答案:

答案 0 :(得分:0)

在我的搜索功能中序列化数据之前添加json_encode($resultsArr);解决了这个问题。