2014-12-02 143 views
0

我想在ajax調用期間在表格上顯示sql查詢結果。我在ajax調用期間編寫了執行查詢的代碼,但是當我嘗試在表格中顯示這些值時, div標記。什麼原因?我如何以表格格式顯示結果集值。在表格中顯示ajax響應值

mycode的:

ViewQuery.jsp

<%-- 
    Document : ViewQuery 
    Created on : Nov 10, 2014, 10:23:48 AM 
    Author  : user 
--%> 

<%@page import="java.util.ArrayList"%> 
<%@page import="querywork.ReadXml"%> 
<%@page import="java.sql.ResultSet"%> 
<%@page import="querywork.DBConnection"%> 
<!-- 
To change this template, choose Tools | Templates 
and open the template in the editor. 
--> 
<!DOCTYPE html> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 


<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <meta charset="UTF-8"> 
      <title>Zerotype Website Template</title> 
      <link rel="stylesheet" href="css/style.css" type="text/css"> 
       <script lang="javascript"> 
        try 
        { 

         var request; 


         function myfunction(str) 
         { 
          try 
          { 


           var url="queryview.jsp" 
           url=url+"?query="+str 
           url=url+"&sid="+Math.random() 

           if(window.XMLHttpRequest){ 
            request=new XMLHttpRequest(); 
           } 
           else if(window.ActiveXObject){ 
            request=new ActiveXObject("Microsoft.XMLHTTP"); 
           } 

           try 
           { 
            request.onreadystatechange=getInfo; 
            request.open("GET",url,true); 
            request.send(); 
           } 
           catch(e) 
           { 
            alert("Unable to connect to server"); 
           } 

           //  alert(textboxes2) 
           //  alert(select) 
          } 
          catch(err) 
          { 
           alert(err) 
          } 
         } 
         function getInfo(){ 
          if(request.readyState==4){ 
           var val=request.responseText; 
           document.getElementById('amit').innerHTML=val; 
          } 
         } 





        } 
        catch(err) 
        {} 

       </script> 
       </head> 
       <body> 

       </body> 
       <body> 
        <form method="POST" action="ViewQuery.jsp"> 
         <% 

          ReadXml rxml = new ReadXml(); 
          ArrayList al = rxml.readXML(0); 
         %> 


         <font color="white"> Choose query</font></label> 
         </label> 

         <select id="c" name="Chooser" style="width:800px; height:50px" onchange="myfunction(this.value)"> 
          <% for (int i = 0; i < al.size(); i++) { 
%><option><font color="white"><%=al.get(i)%></font></option> 
          <% }%> 
         </select> 
         <p>&nbsp;</p> 


         <p>&nbsp;</p> 
         <p><font color="white"> Result:</font> <font color="white"> <div id="amit"> </div></font></p> 

        </form> 


       </body> 
       </html> 

queryview.jsp

<%-- 
     Document : queryview 
     Created on : Nov 16, 2014, 7:15:09 PM 
     Author  : user 
    --%> 
    <%@page import="querywork.getObject"%> 
    <%@page import="java.sql.ResultSet"%> 
    <%@page import="java.sql.DatabaseMetaData"%> 
    <%@page import="querywork.Query"%> 
    <%@page import="querywork.Parser"%> 
    <%@page import="gudusoft.gsqlparser.EDbVendor"%> 
    <%@page import="querywork.gettablecolumns"%> 
    <%@page import="java.sql.PreparedStatement"%> 
    <%@page import="java.sql.DriverManager"%> 
    <%@page import="java.sql.Connection"%> 

    <%@page import="querywork.DBConnection"%> 
    <%@page contentType="text/html" pageEncoding="UTF-8"%> 
    <!DOCTYPE html> 
    <html> 
     <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
      <title>JSP Page</title> 

      <% 

       String responseText = new String(""); 
       boolean flg = false; 
       String query1 = (String) request.getParameter("query"); 
    String[] colname=new String[100]; 
       EDbVendor dbVendor = EDbVendor.dbvmysql; 
       try { 

        getObject g = new getObject(dbVendor); 

        Parser parser1 = new Parser(); 
        Parser.Node parsedNode1 = parser1.parse(query1); 
        g.setSqltext(query1); 
        System.out.println(query1); 

        String table = g.run(); 

        String[] splitstring = table.split("Columns:"); 

        String newval = splitstring[1].replaceAll("\\([^\\)]*\\)", ""); 

        String[] inputSplitNewLine = newval.split("\\\n"); 

    int i1=0; 

        String[] firstval = splitstring[0].split("\\\n"); 
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", ""); 
        DatabaseMetaData dbmd = conn.getMetaData(); 
        responseText= "<table border=1 cellpadding =2 cellspacing=3><tr>"; 
        for(int p=0;p<inputSplitNewLine.length;p++) 
              { 
         String col=inputSplitNewLine[p]; 

    responseText=responseText+" <td> "+col+" </td>"; 
        } 
        responseText="</tr>"; 
        ResultSet ctlgs = dbmd.getCatalogs(); 
        for (int i = 1; i < firstval.length; i++) { 
         while (ctlgs.next()) { 


          String dbname = ctlgs.getString(1); 

          DBConnection dbc = new DBConnection(dbname); 
          ResultSet rs = dbc.SelectTable(); 
          while (rs.next()) { 
           String columnName = ""; 
           String tableName = rs.getString("TABLE_NAME"); 
           if (tableName.equalsIgnoreCase(firstval[i])) { 
            DBConnection dbc1 = new DBConnection(dbname); 
            ResultSet rs1 = dbc1.execute(query1); 

            while(rs1.next()) { 
             out.println(rs1.getString(1)); 
             responseText=responseText +"<tr><td> "+rs1.getString(1)+"</td></tr>"; 
            } 
           } 
          } 
         } 
        } 
        out.print(responseText); 
       } catch (Exception e) { 
        out.print(e); 
       } 

      %> 
     </head> 
     <body> 

     </body> 
    </html> 

回答

0

檢查是否獲得的數據爲空或不是。 在將數據打印到表格單元放置條件之前,驗證讀取數據是否有效或不爲空,空值增加單元格中的空間。

示例代碼: -

while(rs.next()) 
{ 
    %> 
    <tr> 
    <td><%= (rs.getString(1) !='')?rs.getString(1):"-" %></td> 
    <td><%= (rs.getString(2) !='')?rs.getString(2):"-" %></td> 
    <% 
} 

您的代碼: - 只寫下面的代碼

 <%-- 
       Document : queryview 
       Created on : Nov 16, 2014, 7:15:09 PM 
       Author  : user 
      --%> 
      <%@page import="querywork.getObject"%> 
      <%@page import="java.sql.ResultSet"%> 
      <%@page import="java.sql.DatabaseMetaData"%> 
      <%@page import="querywork.Query"%> 
      <%@page import="querywork.Parser"%> 
      <%@page import="gudusoft.gsqlparser.EDbVendor"%> 
      <%@page import="querywork.gettablecolumns"%> 
      <%@page import="java.sql.PreparedStatement"%> 
      <%@page import="java.sql.DriverManager"%> 
      <%@page import="java.sql.Connection"%> 

      <%@page import="querywork.DBConnection"%> 
      <%@page contentType="text/html" pageEncoding="UTF-8"%> 

        <% 

         String responseText = new String(""); 
         boolean flg = false; 
         String query1 = (String) request.getParameter("query"); 
      String[] colname=new String[100]; 
         EDbVendor dbVendor = EDbVendor.dbvmysql; 
         try { 

          getObject g = new getObject(dbVendor); 

          Parser parser1 = new Parser(); 
          Parser.Node parsedNode1 = parser1.parse(query1); 
          g.setSqltext(query1); 
          System.out.println(query1); 

          String table = g.run(); 

          String[] splitstring = table.split("Columns:"); 

          String newval = splitstring[1].replaceAll("\\([^\\)]*\\)", ""); 

          String[] inputSplitNewLine = newval.split("\\\n"); 

      int i1=0; 

          String[] firstval = splitstring[0].split("\\\n"); 
          Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", ""); 
          DatabaseMetaData dbmd = conn.getMetaData(); 
          responseText= "<table border=1 cellpadding =2 cellspacing=3><tr>"; 
          for(int p=0;p<inputSplitNewLine.length;p++) 
                { 
           String col=inputSplitNewLine[p]; 

      responseText=responseText+" <td> "+col+" </td>"; 
          } 
          responseText="</tr>"; 
          ResultSet ctlgs = dbmd.getCatalogs(); 
          for (int i = 1; i < firstval.length; i++) { 
           while (ctlgs.next()) { 


            String dbname = ctlgs.getString(1); 

            DBConnection dbc = new DBConnection(dbname); 
            ResultSet rs = dbc.SelectTable(); 
            while (rs.next()) { 
             String columnName = ""; 
             String tableName = rs.getString("TABLE_NAME"); 
             if (tableName.equalsIgnoreCase(firstval[i])) { 
              DBConnection dbc1 = new DBConnection(dbname); 
              ResultSet rs1 = dbc1.execute(query1); 

              while(rs1.next()) { 
               out.println(rs1.getString(1)); 
               responseText=responseText +"<tr><td> "+rs1.getString(1)+"</td></tr>"; 
              } 
             } 
            } 
           } 
          } 
          out.print(responseText); 
         } catch (Exception e) { 
          out.print(e); 
         } 

        %> 
+0

我解決了這個問題issue.The與我css.I我的CSS表格邊框設置爲0這就是爲什麼出現這個問題。無論如何謝謝你的友好合作 – Ash 2014-12-02 10:47:21