Buyur tam istediğin şekilde
<form id="formum">
<input type="checkbox" id="chbx1">
<input type="checkbox" id="chbx2">
<input type="checkbox" id="chbx3">
<button type="button" name="butonum" id="butonum">GÖNDER</button>
</form>
<div id="sonuc"></div>$(function () {
$(this).on('click','#butonum',function() {
let obj = {};
$(this).siblings("input").each(function () {
let key = $(this).attr("id");
obj[key] = $(this).prop("checked") ? 1 : 0;
});
$.post(window.location, {form: obj}, function (response) {
console.log(response)
})
});
})Bu da php de yakalanmış hali
if (isset($_POST['form'])) {
print_r($_POST);
exit();
}Postu aynı sayfaya yapıyor burada, siz değiştirin sonradan. Gelen yanıtı da konsola basıyor.
Form elemanlarında düzenleme yaptım olayı daha iyi anlatabilmek adına. Formda birçok eleman var datatable mantığı gibi.
Benim formumda buraya yazmadığım başka elemanlarda var. Select, textarea, text gibi başka elemanlarda var. bunların hepsini birden post ediyor mu bu kod?
Seçilmeyenleri post edemezsiniz, javascript ile seçilmeyenleri kontrol edip aynı isimde yeni hidden inputlar oluşturup post edebilirsiniz. Daha temizi postu aldığınız sayfada önce tüm değerleri 0 olarak update edin ardından 1 gelenleri yeniden update ederek sorunu daha kolay çözebilirsiniz.
Form içerisinde başka elemanlarda var düzenleme yaptım yukarıda. Sayfa biraz datatable mantığında. "Seçilmeyenleri post edemezsiniz, javascript ile seçilmeyenleri kontrol edip aynı isimde yeni hidden inputlar oluşturup post edebilirsiniz." bu söylediğinizi nasıl yapabilirim.