0

I'm currently trying to send data with html input checkbox to my php page.

There is how I generate my input :

  1. Sending ajax call and get back data from database
  2. Create input with callback
  3. Add input to my form
  4. If user send the form, we're getting in PHP the input values

When user's send data, if I do :

die(var_dump($_POST));

I'll have the key, but no value. here is my result

$_POST[
    "key1" => "value",   
    "key2" => "value",
    "WantedKey[]" => null // the key I need

checkbox are generated using JavaScript

There is the html result when DOM is loaded :

<form method="post" action="#" enctype="multipart/form-data" id="foo">
    ...
    <div id="zoneFoo">
            <br>
            <div>
                <label>foo</label>
                <input id="test1" type="checkbox" name="test[]" value="test1" style="width:26px;" checked="checked">test1
                <input id="test2" type="checkbox" name="test[]" value="test2" style="width:26px;" checked="checked">test2
                <input id="test3" type="checkbox" name="test[]" value="test3" style="width:26px;" checked="checked">test3
                <input id="test4" type="checkbox" name="test[]" value="test4" style="width:26px;" checked="checked">test4
                <input id="test5" type="checkbox" name="test[]" value="test5" style="width:26px;">test5
            <div>
    </div>
                ...
</form>

I also tryed to "hard-code" theses input, but I have the same result: $_POST key exist but values are still missing ...

Do you have any suggestions about the problem ?

Thanks a lot to read this, and special thanks for help me ^^

Edit:

here is my javascript (Modified values because it's working code)

$.get("foo/foo.php", { 
     // some data
  }, function(data){

        // Data return a string like "test1;test2;test3"
        let chaine = `<div><label> Title </label>`;
        const tab = ["test1", "test2", "test3", "test4", "test5"];

         tab.forEach(function(element){                    
            if(data.indexOf(element) != -1){
                chaine += `<input id='${element}' type='checkbox' name='test[]' value='${element}' style='width:26px;' checked />${element}`;

            } else {
               chaine += `<input id='${element}' type='checkbox' name='test[]' value='${element}' style='width:26px;' />${element}`;
            }
        });

        $("#myDiv").html(chaine);
  }
);

Rocaufeu
  • 66
  • 5

0 Answers0