检索未完成所需值的JQuery自动完成

时间:2014-01-10 11:15:43

标签: javascript php jquery codeigniter

我有以下代码来实现表单字段的自动填充

 $( "#manager" ).change(function() {              
     var rows;
     var manager = $(this).val();
     var grouplist = $.post("<?php echo base_url();?>groups/getgrouplist/?"+"manager_name="+manager); 
     $( "#groups" ).autocomplete({ source: grouplist  });               
});

这是回复后的帖子。

[{"personnel_name":"nab_group_1_1"},{"personnel_name":"nab_group_1_2"},{"personnel_name":"nab_group_2_1"}]

显而易见,它获得了所需的价值并且正在发挥作用。 但自动完成不显示任何值。 我在grouplist上放了一个警告,它显示了对象对象。 有人可以建议我如何解决这个问题,这里有什么不对。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

$.post("<?php echo base_url();?>groups/getgrouplist/?"+"manager_name="+manager,function(response){
    var grouplist = jQuery.parseJSON(response);
    $( "#groups" ).autocomplete({ source: grouplist  }); 
}); 

你的自动完成应该是这样的

已编辑的代码

    $.post("<?php echo base_url();?>groups/getgrouplist/?"+"manager_name="+manager,function(response){
        var grouplist = jQuery.parseJSON(response);
        var new_data_source = $.map( grouplist, function( item ) {
            return {
                    label: item.nab_group_1_1,
                    value: item.personnel_name
            }
        });
        $( "#groups" ).autocomplete({ source: new_data_source  }); 
    }); 

json应该像[{"id":"your_id","label":"your_label"}]

虽然你的json不同,所以你必须在成功时创建json

答案 1 :(得分:0)

检查autocomplete消耗的内容。我认为你的对象被强制转换为字符串Object Object。如果您将JSON传递给自动完成,请确保您的后端提供JSON作为响应。