На клиенте (index.jsp) имею 8 чекбоксов - комплектации авто:
JavaScript методом XMLHttpRequest
передаю серверу значение всех чекнутых и не чекнутых боксов. Например, все восемь будут выглядеть так: 111111,11. Отмеченный первый: 0,01, второй: 0.1, первый и пятый: 100,01, шестой и первый 1000,01 и т.д.
Бизнес под каждый результат готовит соответствующий запрос в БД и возвращает клиенту ответ.
С математикой у меня не все радужно, и по моим расчетам выходит, что у меня 256 вариантов комплектации авто. То есть мне необходимо написать под каждый вариант соответствующих запросов в размере 256? Но это вообще не вариант.
Смотрела готовый вариант оракла, но там перебор картинок и, думаю, результаты БД вшить не получится.
Ребят, вопрос подразумевала в следующем: как в сервлете обработать 256 запросов клиента. С учетом, что каждый запрос обращение к БД.
Я не уверен, что правильно все понял, но постарался решить вашу задачу.
// Список инпутов
let inputs = document.querySelectorAll('input[type="checkbox"]')
inputs = Array.prototype.slice.call(inputs);
// Конейтнер, куда выплевываем результат
const resultContainer = document.getElementById('result');
// Событие на переключение чекбоксов
inputs.forEach(function(input) {
input.addEventListener('change', getResponseString);
});
function getResponseString() {
var result = '';
// Собираем строку с правильными значениями
inputs.forEach(function(input, i) {
result += input.checked ? '1' : 0;
// Добавляем точку
if(i === 5) result += '.';
});
result = result.split('.');
// Получаем левую часть
let left = result[0].split('').reduce(function(prev, current) {
// Откидываем нули в начале
return !prev && !parseInt(current) ? prev : prev + current;
}, '');
// Если вообще всё отсеяли, то делаем нулем
if(left == '') left = '0';
// Правая часть
let right = result[1].split('').reduceRight(function(prev, current) {
// Откидываем нули в начале
return !prev && !parseInt(current) ? prev : prev + current;
}, '');
// Переменная в которую склеим запрос
var request = '';
// Если в правой части есть хоть что-то, то склеиваем
if(right != '') {
// Разворачиваем правую часть, это важно потому что мы собирали првую часть с помощью reduceRight, а она идет по строке в обратном порядке
right = right.split('').reverse().join('');
// и склевивем
request = left + '.' + right;
}
// в противном случае отдаем только левую часть
else {
request = left;
}
// Выводим результат
resultContainer.textContent = request;
}
// Взываем при загрузке, чтобы сразу же видеть результат
getResponseString();
<label>
<input type="checkbox">
<span>Кожаный салон</span>
</label><br>
<label>
<input type="checkbox">
<span>Цвет металлик</span>
</label><br>
<label>
<input type="checkbox">
<span>ГУР</span>
</label><br>
<label>
<input type="checkbox">
<span>Спойлер</span>
</label><br>
<label>
<input type="checkbox">
<span>Подогрев сидений</span>
</label><br>
<label>
<input type="checkbox">
<span>Подогрев задних сидений</span>
</label><br>
<label>
<input type="checkbox">
<span>Климат контроль</span>
</label><br>
<label>
<input type="checkbox">
<span>3-ех зонный климат контроль</span>
</label><br><br>
<div id="result">000000,00</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Коллеги, доброго дняНе могу понять, как сделать правильно: Необходимо сделать игру, в которой нужно угадать число компьютера
Здравствуйте, в последних нескольких коммитаъ возникла странная ошибка, так и не получилоьс отследить откуда у нее корни растут, хотя до этого...
Необходимо сделать так, чтобы File Chooser Dialog делал доступными для выбора не все файлы, а только те, которые имеют расширениеsvg Мой код:
Нужно написать реализацию функции void merge(ArrayList a, ArrayList b) { // тело функции }