На моей странице 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>