• 07-05-2020, 01:15:43
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Projemde checkbox ile seçim yaptırdığım alanlar var. Post işlemi yaptığımda sadece seçilen checkbox ları post ediyor. Ben seçilenlerin value değerini "1" seçilmeyenlerinde "0" olacak şekilde tümünün post etmesini istiyorum. Yardımcı olabilir misiniz?

    <form id="formum">
    
    <table>
    
    <tr>
    <input type="text" name="adi[]" value="Ali">
    <select class="form-control form-control-sm" id="cikisayni" name="cikisayni[]" disabled>
    <option value="0"></option>
    <option value="1">Evet</option>
    <option value="2">Hayır</option>
    </select>
    <input type="checkbox" name="sec[]" value="1">
    </tr>
    
    <tr>
    <input type="text" name="adi[]" value="Ali">
    <select class="form-control form-control-sm" id="cikisayni" name="cikisayni[]" disabled>
    <option value="0"></option>
    <option value="1">Evet</option>
    <option value="2">Hayır</option>
    </select>
    <input type="checkbox" name="sec[]" value="1">
    </tr>
    ...
    </table>
    
    <button type="button" name="butonum" id="butonum">GÖNDER</button>
    
    </form>
    
    <div id="sonuc"></div>
    $(document).on('click','#butonum',function(){
    var form1 = $("#formum").serialize();
    $.ajax({
    url:'post.php',
    type:'POST',
    data: form1,
    success:function(result){
    $('#sonuc').html(result);
    },
    });
    });
  • 07-05-2020, 02:28:19
    #2
    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.
  • 07-05-2020, 03:42:04
    #3
    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.
  • 07-05-2020, 05:39:25
    #4
    Abdullahx adlı üyeden alıntı: mesajı görüntüle
    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?






    Met adlı üyeden alıntı: mesajı görüntüle
    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.
  • 07-05-2020, 14:00:20
    #5
    Submit butonuna kardeş olan bütün input elemanlarını kontrol ediyor bu kod, ama eğer isterseniz sadece checkbox elemanlarını kontrol edecek şekilde de düzenlenebilir
  • 08-05-2020, 00:43:16
    #6
    Abdullahx adlı üyeden alıntı: mesajı görüntüle
    Submit butonuna kardeş olan bütün input elemanlarını kontrol ediyor bu kod, ama eğer isterseniz sadece checkbox elemanlarını kontrol edecek şekilde de düzenlenebilir
    Select elemanlarınıda kontrol etmesi için nasıl düzenlenmelidir?
  • 08-05-2020, 03:05:36
    #7
    Post etmek istediğiniz bütün form elemanlarına ortak bir class tanımlarsınız ve javascript de value ve checked değerlerini ayrı ayrı kontrol ettirmek gerekir. Fakat sizin tablo yapınızda tr elemanları neye göre şekil alıyor onu da bilmek lazım. her tr elemanını neye göre şekillendiriyorsunuz?