0

我有 jQuery UI 自动完成代码如下:

 $("#keyword").autocomplete({
                source: function(request, response) {
                    $.ajax({
                        url: "<?php echo base_url(); ?>index.php/formhandler/autocomplete",
                        data: {term: request.term, data: $("#city").val()},
                        dataType: "json",
                        success: function(data) {
                            response($.map(response, function(item) {
                                return {
                                    label: item,
                                    value: item
                                }
                            }));
                        }
                    })
                }
            });

我的响应为 json,如下所示:

 ["result1"]["reusult2"]["result3"]["result4"]["result4"]

如何使用 this自动完成关键字字段?

4

3 回答 3

1

您似乎没有使用 ajax 成功函数的参数数据。打开 JavaScript 控制台(chrome 中的 F12)并检查是否有任何错误。

$("#keyword").autocomplete({
     source: function(request, response) {
     $.ajax({
       url: "<?php echo base_url(); ?>index.php/formhandler/autocomplete",
       data: {term: request.term, data: $("#city").val()},
       dataType: "json",
       success: function(data) {
       //check what data contains. it should contain a string like "['val1','val2','val3','val4']"
       //the next line should use $.map(data and not $.map(response
       response($.map(response, function(item) {
         return {
           label: item,
           value: item
         }
    }));
 }
 })
}
});
于 2013-06-04T06:22:04.940 回答
0

你为什么使用 $.ajax。您可以从 $.get 获取数据作为源。

$("#keyword").autocomplete({
              source : function (request, response) {
              $.get("<?php echo base_url(); ?>index.php/formhandler/autocomplete", {term: request.term, data: $("#city").val()}, function (data) {
                response(data);
            });
         }
      });
于 2013-06-04T06:20:16.247 回答
0

您需要组合这些数组>使用:

$.merge

您可能必须使用循环。一个例子可以是这样的:

var first = ['a','b','c'];
var second = ['d','e','f'];
$.merge( $.merge([],first), second);

哪个会输出:

["a","b","c","d","e","f"] 
于 2013-06-04T06:20:52.843 回答