JSP заполнить раскрывающийся список значением, взятым из предыдущего раскрывающегося списка - PullRequest
1 голос
/ 28 сентября 2019

На моей странице Jsp у меня есть первый выпадающий список, который он просто загружает в начале, с данными из базы данных.

Замена раскрывающегося списка (#docentiDropList) Я беру выбранное значение и использую его для фильтрации следующего раскрывающегося списка, но не могу заполнить раскрывающийся список jsp и не знаю почему.Вероятно, проблема в том, что я должен использовать сеанс вместо запроса ...

Или в части успеха jQuery / ajax, потому что, когда выбирается значение из первого списка, оно фактически берется и передаетсясервлет через запрос, там запрос корректно работает и результаты устанавливаются в атрибуте запроса "materie", но затем ничего не появляется в выпадающем списке.

Здесь я устанавливаю атрибут запроса с результатом запроса.

Java-код

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //HttpSession s = request.getSession();
        try {
            List<String> materie = new ArrayList();
            String docenteDropList = request.getParameter("materie");
            if (docenteDropList != null) {
                Statement st = conn.createStatement();
                ResultSet rs = st.executeQuery("SELECT giorno FROM prenotazioni WHERE studente='" + docenteDropList + "'");
                while (rs.next()) {
                    materie.add(rs.getString("giorno"));
                }
                request.setAttribute("materie", materie);
            }
            processRequest(request, response);
        } catch (...) {}
    }

мой JSP-файл

 <select id="docentiDropList">
                <c:forEach items="${docenti}" var="docenti">
                    <option name="docenti" value="${docenti}">
                        ${docenti}
                    </option>
                </c:forEach>
            </select>


            <select id="materie" name="materie">
                <c:forEach items="${materie}" var="materie">
                    <option value="${materie}">
                        ${materie}
                    </option>
                </c:forEach>
            </select>

JQuery-код внутри JSP

      <script>
    $(document).ready(function () {
        $("#docentiDropList").on("change", function () {
            var materie = $("#docentiDropList").val();
                $.ajax({
                    url: "Controller",
                    method: "GET",
                    data: {materie: materie},
                    success: function (materie)
                    {
                        $("#materie").html(materie); 
                    }
                });
        });
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...