I’m posting a jquery serialize data posting from modal/pop up div tag with name attribute such as formdata[1]field_x
<div class="modal fade show" id="modal-payref-settings" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modal-paycode-detailsLabel" aria-modal="true" role="dialog" style="padding-right: 17px; display: block;"> <div class="modal-dialog modal-dialog-scrollableX "><div class="modal-content "> <div class="modal-body "> <input type="text" name="formdata[1]payref_autonum" class="form-control dropdown-vw-item-text input-payref-autonum "> <input type="text" name="formdata[1]payref_prefix" class="form-control input-payref input-payref-prefix text-end"> <input type="text" name="formdata[1]payref_suffix" class="form-control input-payref input-payref-suffix text-end"> <input type="text" name="formdata[1]payref_pad" class="form-control input-payref input-payref-num-pad text-end" value="4"> <input type="text" name="formdata[1]payref_next" class="form-control input-payref input-payref-num text-end" value="876"> <input type="text" name="formdata[1]payref_sample" class="form-control input-payref-sample text-end" placeholder="Sample" aria-label="Sample" readonly=""> </div> <!-- modal-body ends --> </div> </div> </div> $.ajax({ type: 'POST', url: 'model/trcode.php', data: { 'a': 'SAVE_PAYREF', 'formdata':$('#modal-payref-settings').find('[name^="formdata"]').serialize(), }, // dataType: "JSON", success: function (jsonStr) { alert(jsonStr); } });
The Fetch/XHR capture the serialized posted data, which indicate the posting is correct. The same result return with print_r($_POST["formdata"] );
.
formdata%5B1%5Dpayref_autonum=Yes&formdata%5B1%5Dpayref_prefix=P2022&formdata%5B1%5Dpayref_suffix=&formdata%5B1%5Dpayref_pad=4&formdata%5B1%5Dpayref_next=876&formdata%5B1%5Dpayref_sample=
The data are getting un-serialized parse_str($_POST["formdata"], $formdata );
. However $formdata
return an empty array.
( [formdata] => Array ( [1] => ) )
Advertisement
Answer
The issue is your form fields name
attribute is not an array,(which you are thinking is an array, but has a syntax error).To fix this do like below:
change names like this: formdata[1][payref_autonum]
and so on for others.