如何使用ajax在html页面上显示从数据库(使用jsp文件)中提取的内容?

时间:2019-11-06 17:47:29

标签: html css ajax jsp

我有一个名为Track.html的HTML文件,它包含一个文本框。我们输入一个10位数字,然后单击按钮进行搜索。验证后,将调用AJAX函数,该函数将数字发送到jsp文件,并在数据库中搜索输入数字,如果在数据库中找到了该值,则输出应显示在同一HTML页面上的另一个文本框中(而不更改网址)。但是问题是它不起作用。

要检查我的jsp文件是否正常运行,我执行了以下操作: 我使用的是表单标签,因此在其动作属性中我提到了jsp文件,而不是调用AJAX函数,因此在搜索输入数字后,它将重定向到新页面并显示从数据库中获取的相应内容,但是我想要内容显示在同一页面上。

这是HTML部分:

<fieldset>
    <form method="post">
        <table cellpadding="10" cellspacing="10">
            <tr>
                <td><strong>Consignment Number</strong></td>
                <td><input type="text" id="cons" name="cons" autofocus="true" 
                    placeholder="Enter the 10 digit Consignment Number"
                </td>
            </tr>
            <tr>
                <td align="center"><button onclick="search() 
                    <span>Search</span></button></td>
                    <td><span><input type="reset"></span></td>
            </tr>
        </table>
    </form>
</fieldset>
<br>
<fieldset>
    <table cellpadding="10" cellspacing="10">
        <tr>
            <td><strong>Your Package is at:</strong></td>
            <td><input type="text" id="result"></td>
        </tr>
    </table>
</fieldset>

这是AJAX函数:

function search() {
  if (validate()) {
    var cnum = document.getElementById('cons').value;
    var obj1 = new XMLHttpRequest();
    obj1.onreadystatechange = function () {
      if ((obj1.readyState == 4) && (obj1.status == 200)) {
        document.getElementById("result").value = obj1.responseText;

      }
    }
    obj1.open("get", "Trace.jsp?cn=" + cnum, true);
    obj1.send();
  }

这是jsp代码:

<%@page import="java.sql.*"%>
<%
    try
    {
        int conum=Integer.valueOf(request.getParameter("cn"));
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/postal_info","root","*******");
        Statement st=con.createStatement();
        ResultSet rs=st.executeQuery("select * from trace;");
        while(rs.next())
        {
            int c=rs.getInt(3);
            if(conum==c)
            {
                out.println(rs.getString(6));
            }
        }
    }
    catch(Exception e)
    {
        out.println(e);
    }
%>

0 个答案:

没有答案