我试图通过servlet接收数据来实现jQuery自动完成插件。 该脚本工作,它确实从servlet中提取结果,但我无法在下拉菜单中正确呈现它。假设我在搜索栏中写“hel”,自动完成下拉列表是:
h
e
l
l
o
根据我的理解,autocomplete插件应该接收一个数组,我认为这可能是问题。 这是我的javascript代码:
<script>
function getFilteredNames(request, response){
$.ajax({
type: "POST",
url: "../servlet/Autocomplete",
data: request,
success: function(data) {
response(data);
}
});
}
$(document).ready(function(){
$("#buscar").autocomplete({ source : getFilteredNames, minLength: 3});
});
</script>
这是servlet代码的一部分:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String query = request.getParameter("term");
List<Socio> rs = new ArrayList<Socio>();
rs = SocioDAO.getSociosByQuery(query);
if (rs.isEmpty()) {
out.println("No hay coincidencias");
}
else {
Iterator <Socio> iterator = rs.iterator();
while (iterator.hasNext()) {
String nombre = (String) iterator.next().getNombre();
out.println(nombre);
}
}
任何建议都将不胜感激! 谢谢, 尼克
答案 0 :(得分:0)
自动完成UI插件接受数组,以JSON数据格式化的对象。
将ur数据转换为json格式你可以使用http://www.json.org/提供的实用程序调用