I wanted to add event listener to all checkboxes on my page.
<input type="checkbox" name="sel[]" id="1" value="1">
<input type="checkbox" name="sel[]" id="2" value="2">
<input type="checkbox" name="sel[]" id="3" value="3">
<input type="checkbox" name="sel[]" id="4" value="4">
<input type="checkbox" name="sel[]" id="5" value="5">
<input type="checkbox" name="sel[]" id="6" value="6">
<!-- ..... -->
<script>
var arr = document.getElementsByName("sel[]");
var copy = [];
for (i = 0; i < arr.length; i++)
copy[i] = arr[i].id;
var checkboxes = [];
var data;
for (j = 0; j < arr.length; j++)
{
checkboxes[j] = document.getElementById(copy[j]);
checkboxes[j].addEventListener('change', (event) => {
if (event.target.checked)
{
data = j;
$.post("/php/ses.php", {data:data});
}
else
{
data = (-1)*j;
$.post("/php/ses.php", {data:data});
}
});
</script>
It works for every checkbox, but always sends 6 if any checkbox is checked (or -6 when unchecked). I wanted to: 1 and -1 for first chceckbox, 2 and -2 for second etc, not 6/-6 for every.