2017-06-16 10 views
0

まず、これを行うにはより良い方法があると知っていますが、クライアントはこのようにしなければならないことを求めています。JSPページでJavaScriptとJSONを使用して詳細を取得する

編集: 以前からいくつか変更しました。

問題:ここでは、一般的な「binder_no」というレコードを1つだけ取得していますが、複数取得する必要があります。

index.jspを

<script> 
     function fetchEmailList(obj){ 
      var but_val = obj.value; 
      var off_no = '<%=subdiv%>'; 
      alert(off_no); 
      var bill_mon = '<%=bmon%>'; 
      var bill_year = '<%=yr%>'; 
      //$("#"+tblId).html(sprTblHdr); 
      $.post("fetch_dtls.jsp",{fetch_bin: but_val,bill_m: bill_mon,bill_y: bill_year,office: off_no},function(data){ 
       alert("Hello"); 
       console.log(data); 
       var jsonData = JSON.parse($.trim(data));    
       console.log(jsonData); 
       $.each(jsonData, function(k, v){      
        //$("#bin_det").find("tr:eq(1) td:eq(0) #consNu").html(v.consNum); 
        $("#bin_det").find("tr:eq(1) td:eq(0) #offno").html(v.offName); 
        $("#bin_det").find("tr:eq(1) td:eq(1) #binno").html(v.binNo); 
        $("#bin_det").find("tr:eq(1) td:eq(2) #billdate").html(v.billDate); 
        $("#bin_det").find("tr:eq(1) td:eq(3) #duedate").html(v.dueDate); 
        $("#panel").css({"display":"block"}); 
       }); 
       //alert(" tbl_html : "+$("#"+tblId).html()); 
       alert("Bye");    
      }); 
     } 
    </script> 
    <div id="panel" style="display:none;"> 
     <table id="bin_det"> 
      <tr> 
       <th colspan="3"> 
        <%= subdiv+" "+bmon+" "+yr %> 
       </th> 
      </tr> 
      <tr> 
       <td> 
        <span id="offno"></span> 
       </td> 
       <td> 
        <span id="binno"></span> 
       </td> 
       <td> 
        <span id="billdate"></span> 
       </td> 
       <td> 
        <span id="duedate"></span> 
       </td> 
      </tr> 
     </table> 
    </div> 

fetch_dtls.jsp

<% 
Class.forName("oracle.jdbc.driver.OracleDriver"); 
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@10.50.82.11:1521:SOS2", "trainee", "trainee"); 
try { 
    //PreparedStatement ps; 
    Statement st=con.createStatement(); 
    ResultSet rs; 
    JSONArray ja = new JSONArray(); 
    //if(binstr.equals("STN_LIST_BEF_ASSIGN")){ 
     String qry = "select * from kcs.rl_kota_bill_prnt_tbl where binder_no='"+request.getParameter("fetch_bin")+"' and bill_month='"+request.getParameter("bill_m")+"' and bill_year='"+request.getParameter("bill_y")+"'"; 
     //ps = con.prepareStatement(qry); 
     //ps.setString(1, stnOwner); 
     rs = st.executeQuery(qry); 
     while(rs.next()) {   
      JSONObject obj = new JSONObject(); 
      obj.put("binNo",rs.getString("binder_no")); 
      obj.put("offName",rs.getString("office_name")); 
      obj.put("billDate",rs.getString("issue_date")); 
      obj.put("dueDate",rs.getString("due_date_by_cash")); 
      ja.add(obj); 
     } 
     rs.close(); 
     st.close(); 
     response.getWriter().write(ja.toString()); 
     response.getWriter().flush(); 
     response.getWriter().close(); 
    //} 
} 
catch(Exception e){ 
    out.println("Wrong Det: "+e); 
} 
%> 

私は、テーブル内の値を入れて中にエラーがあると思います。エラーを修正するのを手伝ってください。

+0

ここでエラーが発生していますか?ブラウザのコンソールで? –

+0

@VinodChandakはい、それがエラーを受け取っています。私は$ .post()関数の直後に警告を出し、それが表示されますが、JSON.parse()関数の後に置くと表示されません。それはすべてがうまくいかないことになるかもしれません。 –

+0

ajaxの成功の呼び出しでconsole.log($。trim(data))をタイプし、あなたのJSONが有効かどうか確認してください – karthick

答えて

0

JSONのフォーマットが正しくありません。 jacksonのようなJSONコンバータライブラリにJavaを使用することをお勧めします。

https://github.com/FasterXML/jackson

あなたのJSONを検証するために、あなたはどのオンラインJSONバリデータを使用することができます。ブラウザコンソールにあなたの応答を印刷して、それを最初に検証してください。

関連する問題