为什么 Jquery-ui 自动完成在 codeigniter 中不起作用?

Why Jquery-ui autocomplete is not working in codeigniter?

我正在开发ui博客应用程序。我有一个搜索框,它将建议类别作为用户类型。所以我使用 jquery-ui 自动完成。但不确定为什么它不起作用。我是新手,花了一整天。请帮忙。这是我的代码。

型号:

public function getCategoriesJson ($keyword) {

    $this->db->select('cat_name');
    $this->db->from('categories');
    $this->db->like('cat_name', $keyword);

    $data = $this->db->get()->result_array();

    $output = array();

    if ($data) {
        foreach ($data as $d) {
            array_push($output, $d['cat_name']);
        }
    }

    echo json_encode($output);
}

查看:

控制器:

public function getCatJson () {

    $this->Category_model->getCategoriesJson($this->input->get('query'));
}

脚本:

$('#search').autocomplete({

    source: '<?php echo base_url(); ?>categories/getCatJson?query=' + $('#search').val(),

    minLength: 1
});

终于找到解决办法了。我更改了我的模型函数代码和我的脚本,如下所示并且它有效。

型号:

public function getCategoriesJson($keyword)
{
        $this->db->select('cat_name');
        $this->db->from('categories');
        $this->db->like('cat_name', $keyword);

        $data = $this->db->get()->result_array();

        $output = array();

        if($data)
        {
            foreach($data as $d)
            {
                array_push($output, ['label' => $d['cat_name']]);
            }
        }

        echo json_encode($output);
}

脚本:

$("#search").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: '<?php echo base_url(); ?>categories/getCatJson',
                type:'GET',
                dataType: "json",
                data: {
                    query: request.term
                },
                success: function (data) {
                    response(data);
                },
                error: function (message) {
                    response([{'label': 'Not found!'}]);
                }
            });
        },
        minLength: 2
    });