0

データベースからデータを取得することにより、単純な jquery オートコンプリートを実装しようとしています。しかし、どういうわけか、提案付きのオートコンプリート ドロップダウンが表示されません。ハードコーディングされた配列がある場合は正常に機能します。問題が存在するのは 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 

ファイルをダウンロードするか、開く(ダウンロードする)かを尋ねるポップアップが表示されます。開くと、メモ帳に値が長いスペースで表示されます。

ここでどこが間違っているのか教えてください。宣言されたハードコードされた値の配列で正常に機能します。

4

1 に答える 1

0

ご覧ください: jQuery API

文字列が渡されるセクションを見てください。要するに、jQuery は「q」ではなく「term」というパラメーターを渡すように見え、JSON の結果を期待します。

データの出力は、jQuery で受け入れられる形式ではありません。同じリンクでオプションを見てください。

配列: 配列はローカル データに使用できます。次の 2 つの形式がサポートされています。

文字列の配列: [ "Choice1", "Choice2" ]

label プロパティと value プロパティを持つオブジェクトの配列: [ { label: "Choice1", value: "value1" }, ... ]

JSP を使用してから長い時間が経ちましたが、このリンクは自動的にエンコードするのに役立つと思います。

JSPでJsonArrayを使用したAjax jquery

于 2013-08-16T21:09:53.003 に答える