1

我正在使用来自http://www.devbridge.com/projects/autocomplete/jquery的 ajax 自动完成教程。

我想更改它的查询以准确地填写输入文本。所以,我需要在模型中编写一个函数,例如:“select username from user where username LIKE "search_string%"”。

但现在我的第一个问题是,它向服务器发送请求:http://localhost/project_name/controller_name/function_name?query=search_string

在 CodeIgniter 中必须是:http://localhost/project_name/controller_name/function_name/search_string.

我的第二个问题,如何从脚本初始化自动完成中获取和传递 search_string?

我的 HTML:

<input class="input-short" style="width: 150px;" type="text" id="search_by_user"  />

我的脚本:

var options, a;
$(document).ready(function(){
    var search_string = ???; //how to get??
    options = {
        serviceUrl:'controller_name/function_name/' + search_string, //**how to get search_string???**
        onSelect: function(suggestion) {
            alert('You selected ' + suggestion.value);    
        } 
    };
    a = $('#search_by_user').autocomplete(options);   
});

如何解决这些问题?

4

2 回答 2

1

I fixed my problems, but data that contains values for callback function when data is selected always null. 这是怎么回事?
我的脚本:

var options, a;

$(document).ready(function(){
    options = {
        serviceUrl:'controller_name/function_test',
        onSelect: function(suggestion) {
            alert('You selected ' + suggestion.value + ', ' + suggestion.data);    
        } 
    };
    a = $('#search_by_user').autocomplete(options);   
});

我在控制器中的功能:

public function function_test() {
        $query = isset($_GET['query']) ? $_GET['query'] : FALSE;
        //$query = 'te';
        if($query) {
            $found = $this->model_name->get_list($query);
            $suggestions = array();
            $data = array();
            foreach($found as $row) {
                $suggestions[] = $row['strfound'];
                $data[] = $row['id'];
            }
            $response = array(
                'query' => $query,
                'suggestions' => $suggestions,
                'data' => $data,
            );
            echo json_encode($response);
        }
}

当我将 $response 回显到浏览器进行测试时,我得到了数据。
但是当我做真实的时候,suggestions.data 总是返回 null。为什么?
EX:我收到与“您选择了 teo,null”相同的警报。

于 2013-07-17T05:08:37.880 回答
1
remove data[]
just    
$suggestions[] = array('value'= $row['fildname'],'data'=>$row['id']);
于 2015-10-05T06:35:23.503 回答