PHP Ajax Request, Handle checkboxes values

Hi guys, I have an array of data, and I want to print it in HTML form (type checkbox) and collect checked values and add it to the database. Here is my code so far, PHP code

//data sample
<?php $testData = ['8966558555e55', '2655sd889s55', '555522d859dkd'] ?>
<form action="<?php $_SERVER['self']?>" id="register_form">

  <?php 
    foreach ($testData as $key => $id) {
        # print IDs
        echo '<input class="formVal" type="checkbox" name"test_delete[]" value="'.$id.'" >';
    }
  ?>
  <input type="submit" value="submit_now" onclick="addSubmitData(); return false;">
</form>

<script>
   function addSubmitData()
    {
        var elements = document.getElementsByClassName("formVal");
        var formData = new FormData(); 
        for(var i=0; i<elements.length; i++)
        {
            // Get checked value
            if (elements[i].checked) {
                formData.append(elements[i].value, elements[i].value);
            }
            
        }
        var xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function()
            {
                if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
                {
                    alert(xmlHttp.responseText);
                }
                
            }
            xmlHttp.open("post", "server.php"); 
            xmlHttp.send(formData); 
    }
</script>

PHP file

//php file, expet to get an array of data containg only checked values
<?php
if(isset($_POST["test_delete"])){
 $_IDs = $_POST["test_delete"];

//Expet array of inputs values
 print_r($_IDs);
 }
?>
//Result is Undefined index: test_delete

How can I solve these issues?

Upvotes: 0

Views: 32

Answers (1)

ADyson
ADyson

Reputation: 61839

Change

formData.append(elements[i].value, elements[i].value);

To

formData.append("test_delete[]", elements[i].value);

You've set the name of the form data parameter as the value of the checkbox by accident.

Upvotes: 1

Related Questions