Как отобразить содержимое, извлеченное из базы данных (используя файл jsp) на моей html-странице, используя ajax? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть HTML-файл с именем Track.html, он содержит текстовое поле. Мы вводим 10-значный номер и нажимаем кнопку для поиска. После проверки вызывается функция AJAX, которая отправляет номер в файл jsp, и в базе данных выполняется поиск входного номера. Если значение найдено в базе данных, выходные данные должны отображаться в другом текстовом поле на той же HTML-странице (без изменения URL). Но проблема в том, что он не работает.

Чтобы проверить, правильно ли работает мой 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);
    }
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...