'Checkbox to show hide div .... on another page [duplicate]
This code works well for results on the same page. I've been looking around and cant find what i want...what i want is to see the results on a page 2, not page 1...by using this code. Not by a form solution either.
I saw something about using cookies. Not sure how to implement cookies on page 2 to get the checkbox state on page 1.
Thanks in advance.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Show Hide Elements Using Checkboxes</title>
<style>
.box{
color: #fff;
padding: 20px;
display: none;
margin-top: 20px;
}
.red{ background: #ff0000; }
.green{ background: #228B22; }
.blue{ background: #0000ff; }
.hello{
display: none;
}
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
$('input[type="checkbox"]').click(function(){
var inputValue = $(this).attr("value");
$("." + inputValue).toggle();
});
});
</script>
</head>
<body>
<div>
<label><input type="checkbox" name="colorCheckbox" value="red"> red</label>
<label><input type="checkbox" name="colorCheckbox" value="green"> green</label>
<label><input type="checkbox" name="colorCheckbox" value="blue"> blue</label>
</div>
<div class="red box">You have selected <strong>red checkbox</strong> so i am here</div>
<div class="green box">You have selected <strong>green checkbox</strong> so i am here</div>
<div class="blue box">You have selected <strong>blue checkbox</strong> so i am here</div>
</body>
</html>
Solution 1:[1]
You can use localStorage. Try this
Page 1
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Show Hide Elements Using Checkboxes</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
let myColors = JSON.parse(localStorage.getItem('myColors') ?? '[]');
myColors.forEach(color => $(`[name="colorCheckbox"][value="${color}"]`).attr('checked', true));
$('input[type="checkbox"]').click(function(){
if( $(this).is(':checked') ){
myColors = [...myColors, $(this).val()];
}else{
myColors = myColors.filter(color => color !== $(this).val());
}
localStorage.setItem('myColors', JSON.stringify(myColors));
});
});
</script>
</head>
<body>
<div>
<label><input type="checkbox" name="colorCheckbox" value="red"> red</label>
<label><input type="checkbox" name="colorCheckbox" value="green"> green</label>
<label><input type="checkbox" name="colorCheckbox" value="blue"> blue</label>
</div>
</body>
</html>
Page 2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Show Hide Elements Using Checkboxes</title>
<style>
.box{
color: #fff;
padding: 20px;
margin-top: 20px;
}
.red{ background: #ff0000; }
.green{ background: #228B22; }
.blue{ background: #0000ff; }
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
let myColors = JSON.parse(localStorage.getItem('myColors') ?? '[]')
.map(color => `<div class="${color} box">You have selected <strong>${color} checkbox</strong> so i am here</div>`)
.join('');
$('#selected-colors').html(myColors)
});
</script>
</head>
<body>
<div id="selected-colors"></div>
</body>
</html>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
