-1

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>
Drew Jones
  • 13
  • 1
  • https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie could be a good place to start. Also, consider checking out something like LocalStorage or SessionStorage, might be even better. https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage – CollinD May 06 '22 at 18:29
  • 1
    Where is the page 2? – ruleboy21 May 06 '22 at 18:35

1 Answers1

0

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>
ruleboy21
  • 5,510
  • 4
  • 17
  • 34