2013-11-28 48 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