lostyazilim
tr.link

Php ve js Checkbox hatası

2 Mesajlar 895 Okunma
acebozum
tr.link

mesut33 mesut33 WM Aracı Kullanıcı
  • Üyelik 15.11.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek Yönetici
  • Konum Mersin
  • Ad Soyad M** U**
  • Mesajlar 153
  • Beğeniler 44 / 11
  • Ticaret 0, (%0)
Merhaba arkadaşlar bilmeyenler içinde iyi olacak, yapmak istediğim şu.
form submit edildiğiden checkboxları on ve boş göndermesini değilde istediğim gibi yollamasını istiyorum.












elma checkbox < işaretliyse aktif < değilse pasif yazılmasını istiyorum.

js ile submit ediyorum

<script>
$(document).ready(function(){


$(document).on("submit","form#uye_kayit",function(e){
e.preventDefault();
var veri = new FormData(this);
$.ajax({
url:"islem.php",
data:veri,
dataType:"json",
method:"post",
contentType:false,
processData:false,
success:function(sonuc){

if (sonuc.ok) {
swal({
title: 'Başarılı',
text: sonuc.ok,
type: 'success',
timer: 3000,
}).html(sonuc.ok);
}else{
swal({
title: 'Hata',
text: sonuc.hata,
type: 'error',
timer: 3000,
}).html(sonuc.hata);
}
}
});

});
});
</script>
 

 

elektronikssl
webimgo

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Formda ..."return false;"... kısmına gerek yok çünkü zaten submit eventinde e.preventDefault(); ile bunu yapmış oluyorsun.

#1
Konuya gelecek olursak bu istediğini hem JS hem de PHP tarafında yapman gerek. Jquery ile şöyle bir yol izlenebilir, fiddle.

http://jsfiddle.net/EgoistDeveloper/304krdyc/

Örnekte ul, li içinde alan checkbox'ları foreach ile gezip checked property false ise default değer olarak aynı name değerini FormData'ya apppend ettim. Arayüzde (veya DOM'da) checkbox'ın value içeriğine bir etkisi yok, sadece post edilecek veri olan FormData için varsayılan değer ekliyor.

#2
Kulanıcıdan böyle bir senaryo için veri bekliyoruz ama XHR isteğini doğrudan elle yapan biri olabilir veya client menipüle edilmiş olabilir. PHP tarafında mutlaka beklenen değer kontrol edilmeli. HTML'de checkbox'lar checked="true" olmadığı sürece post içinde yer almaz, bu durumda if(!isset($_POST['name']) || empty($_POST['name']))... şeklinde kontrol edilebilir.

#3
Kapsamlı formlarda her elementi kontrol etmek işleri spagettiye dönüştürebilir, bu durumda eğer veritabanına doğrudan kayıt söz konusu ise veritabanındaki varsayılan değer özelliğinden yararlanılabilir.

Kolay gelsin.
mesut33

kişi bu mesajı beğendi.

no time for caution
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al