0

ソース JSP:

String r_payment_code = request.getParameter("paymentcode");
String sql = "SELECT hd.invoice_id, tt.payment_code"
          +" FROM dbt_invoice hd, dbt_payment tt"
          +" WHERE hd.payment_id = tt.payment_id"
          +" AND hd.period_id = 147"
          +" AND tt.period_id = 147"
          +" AND tt.payment_code LIKE 'NDH"+ r_payment_code +"%' and rownum <=5";
RecordSet sData = DBUtil.executeQuery(db_name, sql);
JSONObject json      = new JSONObject();
JSONArray jsonarr = new JSONArray();
JSONObject jsonobj;
int i = 0;
String[] arrPaymentCode = new String[sData.RecordCount];
while(sData.next()){
    jsonobj = new JSONObject();
    jsonobj.put("invoice_id", sData.getString("invoice_id"));
    jsonobj.put("payment_code", sData.getString("payment_code"));
    jsonarr.add(jsonobj);
}
json.put("SRC_PAYMENCODE", jsonarr);
response.setContentType("application/json");
out.println(json);

JSP ページからの出力:

[{"invoice_id":"6384","payment_code":"NDH000228015"},{"invoice_id":"6385","payment_code":"NDH000230254"},{"invoice_id":"6386","payment_code": "NDH000228302"},{"invoice_id":"6387","payment_code":"NDH000228303"},{"invoice_id":"6388","payment_code":"NDH000228311"}]

HTML からの呼び出し

$("#txtPaymentCode").autocomplete(
                $.ajax({
                    type: "POST",
                    url: "../../common/script/jquery/autocomplete/srcData.jsp",
                    data :{paymentcode : inputString},
                    dataType: "json",
                    success: function(data){
                        data = JSON.parse(data);
                        alert(data)
                    },
                    error:function (xhr, ajaxOptions, thrownError){
                        alert(xhr.status);
                        alert(thrownError);
                        document.getElementById("dvShowSearchPhone").innerHTML = thrownError;
                    }
                })
        );

無効な JSON: [{"invoice_id":"6384","payment_code":"NDH000228015"},{"invoice_id":"6385","payment_code":"NDH000230254"},{"invoice_id":"6386"," payment_code":"NDH000228302"},{"invoice_id":"6387","payment_code":"NDH000228303"},{"invoice_id":"6388","payment_code":"NDH000228311"}]

4

2 に答える 2

0

質問が何であるか完全にはわかりませんが、推測します。
支払いコードでオートコンプリートしようとしている場合、javascript コールバック ハンドラで data.payment_code を試すとどうなりますか (つまり

success: function(data){
data = JSON.parse(data);
alert(data.payment_code)
},
于 2012-06-26T11:22:42.477 に答える
0

確かではありませんが、単なる推測です

ajax 呼び出しをセミコロンで終了してみてください >> }) should be });

追加してみてください

            contentType: "application/json; charset=utf-8",
于 2012-06-26T11:49:12.013 に答える