Проблема с динамически зависимыми раскрывающимися списками на основе AJAX: «Ошибка загрузки подкатегорий» в JSP и настроJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с динамически зависимыми раскрывающимися списками на основе AJAX: «Ошибка загрузки подкатегорий» в JSP и настро

Сообщение Anonymous »

Я пытаюсь создать набор динамически зависимых раскрывающихся меню с помощью jQuery и AJAX. В раскрывающихся списках должны отображаться категории, подкатегории и дополнительные подкатегории. Однако я столкнулся с проблемой, из-за которой после выбора категории появляется сообщение об ошибке «Ошибка загрузки подкатегорий», и я не могу определить причину этого.
Я написал JavaScript, страница JSP и сервлет Java для обработки раскрывающихся списков. Вот что у меня есть на данный момент:
Код JavaScript (для обработки раскрывающихся списков)
JavaScript отправляет запросы AJAX сервлету на основе выбранного параметра, ожидая ответов JSON с соответствующими данными. :

Код: Выделить всё

$(document).ready(function () {
$.ajax({
url: "GetSubcatFsubcatServlet",
method: "GET",
dataType: "json",
data: { operation: 'cat' },
success: function (data) {
$.each(data, function (key, value) {
$('#cat').append('' + value.cat + '');
});
},
error: function () {
alert('Error loading categories.');
}
});

$('#cat').change(function () {
let cid = $('#cat').val();
$('#subcat').empty().append('Υποκατηγορία');
$('#further_subcategory').empty().append('Υποκατηγορία-2');

$.ajax({
url: "GetSubcatFsubcatServlet",
method: "GET",
dataType: "json",
data: { operation: 'subcat', id: cid },
success: function (data) {
$.each(data, function (key, value) {
$('#subcat').append('' + value.subcat + '');
});
},
error: function (jqXHR, textStatus, errorThrown) {
console.log("Error loading subcategories:", textStatus, errorThrown, jqXHR.responseText);
alert('Error loading subcategories: ' + errorThrown);
}
});
});

$('#subcat').change(function () {
let sid = $('#subcat').val();
$('#further_subcategory').empty().append('Υποκατηγορία-2');

$.ajax({
url: "GetSubcatFsubcatServlet",
method: "GET",
dataType: "json",
data: { operation: 'fsubcat', id: sid },
success: function (data) {
$.each(data, function (key, value) {
$('#further_subcategory').append('' + value.fsubcat + '');
});
},
error: function () {
alert('Error loading further subcategories.');
}
});
});
});
Код JSP
Страница JSP включает раскрывающиеся меню, заполняемые на основе выбора пользователя.

Код: Выделить всё

Κατηγορία


Υποκατηγορία


Υποκατηγορία-2

Сервлет Java
Сервлет GetSubcatFsubcatServlet обрабатывает запросы категорий, подкатегорий и дополнительных подкатегорий.

Код: Выделить всё

public class GetSubcatFsubcatServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json; charset=UTF-8");
response.setCharacterEncoding("UTF-8");

try (PrintWriter out = response.getWriter()) {
String opt = request.getParameter("operation");

if ("cat".equals(opt)) {
ArrayList categories = new GetAllCategories(con).getCategories();
out.write(new Gson().toJson(categories));
} else if ("subcat".equals(opt)) {
String subcatIdParam = request.getParameter("subcat_id");
Long subcatId = Long.parseLong(subcatIdParam);
ArrayList  subcategories = new GetSubcategoriesByID(con).getSubcatByID(subcatId);
out.write(new Gson().toJson(subcategories));
} else if ("fsubcat".equals(opt)) {
String fsubcatIdParam = request.getParameter("fsubcat_id");
Long fsubcatId = Long.parseLong(fsubcatIdParam);
ArrayList furtherSubcategories = new GetFurtherSubcategoriesByID(con).getFSubcatByID(fsubcatId);
out.write(new Gson().toJson(furtherSubcategories));
} else {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
out.write("{\"error\": \"Invalid operation parameter.\"}");
}
} catch (NumberFormatException e) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
LOGGER.log(Level.SEVERE, "Invalid ID format", e);
} catch (Exception e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
LOGGER.log(Level.SEVERE, "Error processing request", e);
}
}
}
Проблема:
При выборе категории я получаю следующее сообщение: «Ошибка загрузки подкатегорий». Ошибка возникает в функции ошибок AJAX, но точная причина не ясна. Я проверил, что данные категории загружаются правильно при первоначальном вызове AJAX, но получение подкаталога не удалось.

Подробнее здесь: https://stackoverflow.com/questions/791 ... categories
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»