Filters 2
Example heading with h2 size
Example heading with h3 size
Following is sample java code.
int i = 10;
if(i>0){
System.out.println('positive');
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hierarchical Checkbox Filters</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.container {
margin-bottom: 20px;
}
</style>
</head>
<body>
<h1>Hierarchical Checkbox Filters</h1>
<form id="filterForm">
<!-- Main Ranges -->
<div class="container">
<h2>Main Ranges</h2>
<label><input type="checkbox" class="main-range" data-group="0-4"> 0 - 4</label><br>
<label><input type="checkbox" class="main-range" data-group="5-30"> 5 - 30</label><br>
<label><input type="checkbox" class="main-range" data-group="31-60"> 31 - 60</label><br>
<label><input type="checkbox" class="main-range" data-group="61-120"> 61 - 120</label><br>
</div>
<!-- Sub Ranges -->
<div class="container" id="subRanges">
<h2>Sub Ranges</h2>
<div data-parent="0-4"></div>
<div data-parent="5-30">
<label><input type="checkbox" class="sub-range" data-group="5-9" data-parent="5-30"> 5 - 9</label><br>
<label><input type="checkbox" class="sub-range" data-group="10-14" data-parent="5-30"> 10 - 14</label><br>
</div>
<div data-parent="31-60">
<label><input type="checkbox" class="sub-range" data-group="31-35" data-parent="31-60"> 31 - 35</label><br>
<label><input type="checkbox" class="sub-range" data-group="36-40" data-parent="31-60"> 36 - 40</label><br>
</div>
</div>
<!-- Years -->
<div class="container" id="years">
<h2>Years</h2>
<div data-parent="5-9">
<label><input type="checkbox" class="year" data-group="5" data-parent="5-9"> 5</label><br>
<label><input type="checkbox" class="year" data-group="6" data-parent="5-9"> 6</label><br>
<label><input type="checkbox" class="year" data-group="7" data-parent="5-9"> 7</label><br>
</div>
</div>
<button type="button" onclick="handleSubmit()">Submit</button>
</form>
<h2>Selected Filters</h2>
<div id="selectedFilters"></div>
<script>
// Handle form submission
function handleSubmit() {
const selectedFilters = [];
const mainRanges = document.querySelectorAll(".main-range:checked");
const subRanges = document.querySelectorAll(".sub-range:checked");
const years = document.querySelectorAll(".year:checked");
// Add selected years
years.forEach(year => {
selectedFilters.push(year.dataset.group);
});
// Add selected sub ranges if no years are selected within them
subRanges.forEach(subRange => {
const parentGroup = subRange.dataset.group;
const subGroupYears = document.querySelectorAll(`.year[data-parent="${parentGroup}"]:checked`);
if (subGroupYears.length === 0) {
selectedFilters.push(parentGroup);
}
});
// Add main ranges if no sub ranges or years are selected within them
mainRanges.forEach(mainRange => {
const parentGroup = mainRange.dataset.group;
const subGroupCheckboxes = document.querySelectorAll(`.sub-range[data-parent="${parentGroup}"]:checked`);
const yearCheckboxes = document.querySelectorAll(`.year[data-parent^="${parentGroup}"]:checked`);
if (subGroupCheckboxes.length === 0 && yearCheckboxes.length === 0) {
selectedFilters.push(parentGroup);
}
});
// Display selected filters
const selectedDiv = document.getElementById("selectedFilters");
selectedDiv.innerHTML = selectedFilters.length > 0
? selectedFilters.join(", ")
: "No filters selected.";
}
</script>
</body>
</html>