2013-07-09 176 views
2

我是jQuery的新手,并试图使用autocomplete小部件和ajax调用我的数据库。Jquery自动完成问题

我能够调用数据库,返回字符串值的ArrayList,并使用org.codehaus.jackson.map.ObjectMapper(我是否需要使用别的东西?)将响应转换为JSON对象。

当我把一个祭坛,我可以看到结果作为纯逗号分隔符的字符串,但我不能看到与自动完成的建议列表。

返回使用 org.codehaus.jackson.map.ObjectMapper JSON对象

Java代码:

response.setContentType("application/json"); 
response.setHeader("cache-control", "no-cache"); 
ArrayList polNo = doa.getPolicyData(ajaxForm.getPolicyNumber()); 
ObjectMapper mapper = new ObjectMapper(); 
OutputStream out = response.getOutputStream(); 
mapper.writeValue(out, polNo); 

JavaScript代码:

$("#policyNumber").autocomplete({ 
source: function (request,response){ 

$.ajax({ 
type: "POST",  
url: "/NB/AjaxSubmit.do", 
    dataType: "json",   
    data: {policyNumber: request.term}, 

    success: function (data) { 
    alert(data);  
    } 

    }); 

},minLength: 3 
}); 

警报数据作为表示:TMA412732,TMA412733,TMA412734


在上面的代码中,我返回字符串值的ArrayList,并能够在autopopulat中显示即我已增强上述代码以返回具有名字,姓氏等的人物对象的列表。现在,当用户在自动填充中输入firname或姓氏时,我想建议First name,LastName Middle。

有人可以帮助提高这一点吗?谢谢!

成功:功能(数据){ 响应(数据); //ü忘了设定的响应 数据}

+1

你从不将'data'传递给'response'函数。如果添加'response(data)'会发生什么? –

回答

0

更改成功之类的函数

success: function (data) { 
response(data); //u forgot to set data on response 

}

+0

感谢qucik回应。我没有进一步提升。我只是想看看我的数据是否回到“数据”中,并且显示为“TMA412732,TMA412733,TMA412734”。我正在寻找下一步,以显示它自动完成。 – user2088016

+0

@ user2088016:这就是你必须要做的,以显示在自动完成。 –

+0

伟大的工作现在:)谢谢大家。我愿意问一个问题。假设我传递了一个obejcts数组(包含值和描述的对象),我想显示自动完成的描述,但一旦选择了它,我需要捕获它的值,就像选择box.Any示例代码好吗? – user2088016