2013-08-16 108 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