2013-07-09 215 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