2013-08-16 110 views
0

我想通过从数据库中检索数据来实现一个简单的jquery自动完成。但不知怎的,自动完成下拉的建议不会显示。当我有一个硬编码数组时,它工作正常。只有使用JSP才能解决问题。jQuery JSON JSP自动完成

我的list.jsp代码。

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@page import="java.sql.*"%> 
<%@page import="java.util.*"%> 

<% 
try{  
    String s[]=null; 
     ResultSet rs = null; 

    Class.forName("oracle.jdbc.driver.OracleDriver"); 
    Connection con =DriverManager.getConnection("jdbc:oracle:thin:@tst:1521:gtst02","tiger","tiger"); 
    String queryy=("SELECT ID FROM (SELECT DISTINCT NAME FROM GOOG WHERE NUM LIKE ?) WHERE ROWNUM<11"); 
    PreparedStatement st=con.prepareStatement(queryy); 
    String query = (String)request.getParameter("q"); 
    st.setString(1,query+"%"); 
    rs = st.executeQuery(); 
    while (rs.next()) { 
     out.print(rs.getString("CONTRACT_NUM")+"\n"); 
     }  
    rs.close(); 
    st.close(); 
    con.close(); 

     } 
    catch(Exception e){ 
     e.printStackTrace(); 
    } 
%> 

我的html代码:

<html lang="en"> 
<head> 

<meta charset="utf-8" /> 


<title>jQuery UI Autocomplete - Remote datasource</title> 


<link rel="stylesheet" 
href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 
<link rel="stylesheet" href="/resources/demos/style.css" /> 

<style> 
.ui-autocomplete-loading { 
background: white url('images/ui-anim_basic_16x16.gif') right center 
    no-repeat; 
} 
</style> 
<script> 
$(function() { 

    //var availableTags = [ "ActionScript","AppleScript"]; 
    $("#tags").autocomplete({  
     source: "list.jsp"  
     }); 
}); 
</script> 

</head> 

<body> 
<div class="ui-widget"> 

<label for="tags">Tags: </label> 

<input id="tags" /></div> 


</body> 
</html> 

当我打

http://localhost:7001/Test/list.jsp&q=206 

它显示一个弹出问我是否要因此文件或打开(下载)。当我打开时,它会在记事本中显示值很长的空间。

请让我知道我要去哪里错了吗?它适用于声明的硬编码值数组。

回答

0

请访问: jQuery API

看看那里一个字符串传递的部分。简而言之,jQuery似乎传递了一个名为'term'而不是'q'的参数,并期望得到JSON结果。

你的数据的输出不是由jQuery的接受的格式,在相同的链接请看选项

数组:数组,可用于本地数据。有两种支持 格式:

字符串数组:[“选择1”,“选择2”]

与标签和值的属性的对象数组:[{标签:“选择1”,值: “value1”},...]

我从事JSP工作已经很长时间了,但我认为这个链接可以帮助你自动编码东西。

Ajax jquery with JsonArray in JSP

+0

我改变参数去 “术语”,做<%@页面的contentType = “应用/ JSON的” %>但它没有工作 – user1722908