2013-11-28 101 views
1

我試圖從jsp使用ajax檢索值,如此處所述here。但它不是這個AJAX不返回值表格JSP

主頁

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
    <head> 
     <title>Jsp Page</title> 
     <script> 
      function showuser(str) 
      { 
       var xreq; 
       if (str == "") 
       { 
        document.getElementById("showtext").innerHTML = ""; 
        return; 
       } 
       if (window.XMLHttpRequest) 
       { 
        xreq = new XMLHttpRequest(); 
       } 
       else 
       { 
        xreq = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       xreq.onreadystatechange = function() 
       { 
        if ((xreq.readyState == 4) && (xreq.status == 200)) 
        { 
         document.getElementById("showtext").innerHTML 
           = xreq.responseText; 

        } 
       } 
       xreq.open("get", "getuser.jsp?q=" + str, "true"); 
       xreq.send(); 

      } 
     </script> 
    </head> 
    <body> 
     <form> 
      <select name="user" onchange="showuser(this.value)" > 
       <option value="">Select Student name....</option> 
       <option value="abhi">abhi</option> 
       <option value="alex">alex</option> 
       <option value="adam">adam</option> 
      </select> 
     </form> 
     <br/> 
     <div id="showtext">The response will come here</div> 
    </body> 
</html> 

DB連接建立頁面

<%@page import="java.text.SimpleDateFormat"%> 
<%@page import="java.util.*,java.sql.*,java.io.*" %> 
<%@page import="javax.servlet.*" %> 
<%@page import="javax.servlet.http.*" %> 

<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>jsp Page</title> 
    </head> 
    <body> 
     <%! Connection con;%> 
     <%! Statement s;%> 
     <%! ResultSet rs;%> 

     <% String name = request.getParameter("st"); 

      try { 

       Class.forName("oracle.jdbc.driver.OracleDriver"); 
       con = DriverManager.getConnection("URL"); 
       s = con.createStatement(); 
       rs = s.executeQuery("select * from studentinfo where name='" + name + "'"); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     %> 

     <div id="dtl_table"><table border='3' cellpadding='5' 
            cellspacing='2' width="400px"> 
       <tr bgcolor="66FF00"> 
        <th>Name</th> 
        <th>Branch</th> 
        <th>Year</th> 
        <th>Email id</th> 
       </tr> 
       <tr> 
        <% while (rs.next()) { 
        %> 
        <td><%= rs.getString("NAME")%></td> 
        <td><%= rs.getString("BRANCH")%></td> 
        <td><%= rs.getString("YEAR")%></td> 
        <td><%= rs.getString("EMAIL")%></td> 
        <% }%> 
       </tr> 
      </table></div> 
    </body> 
</html> 

表結構

CREATE TABLE studentinfo(
    name VARCHAR2(30), 
    branch VARCHAR2(20), 
    year VARCHAR2(20), 
    email VARCHAR2(80) 
); 
返回從DB.Please幫助值
+0

_「它不是返回從DB值」 _ - 實際上確實發生了什麼?你在瀏覽器的控制檯或服務器端是否有錯誤?另外,爲什麼當你在沒有jQuery的情況下使用普通的JavaScript時,標記爲「jquery」?並且,請_放大您的code_,以便它是可讀的。 – nnnnnn

+0

@nnnnn它沒有顯示錯誤,它不打印任何值從數據庫打印表頭只有..我使用netbeans,我應該添加任何jquery文件來執行此? –

+0

@sankrish在使用ajax請求時,總是在瀏覽器中使用firebug,以便您能夠看到發送請求時發生了什麼,以及您得到的是什麼 – Deepak

回答

1

有請求對象

String name=request.getParameter("st"); 

要傳遞的參數沒有參數stq

xreq.open("get","getuser.jsp?q="+str,"true"); 
+0

它解決了這個問題。感謝您的回答:) –

+0

我怎麼可以用servlet替換第二個JSP頁面?這是可能的,因爲我想避免使用腳本 –

+0

是的,這是可能的 – MaVRoSCy