Php Ve Checkbox (Yardım)
-
[URL=http://imageshack.us/photo/my-images/210/asdqwen.png/][IMG=http://img210.imageshack.us/img210/8021/asdqwen.png][/IMG][/URL]
secilip secilmediklerini veri tabanına yazdırmak istiyorum
mesela veri tabanından çektiğim zaman seçtiği şeye göre görüntü şu olucak
[URL=http://imageshack.us/photo/my-images/29/codet.png/][IMG=http://img29.imageshack.us/img29/7507/codet.png][/IMG][/URL]
-
db de boolean alan oluştur her bi seçenek için
sonra formdan gelen veriyi kontrol et şu şekilde:
<input type="checkbox" name="dvdCalar" value="ok" />
eğer seçilirse get yada post değişkeninde dvdCalar değeri olucaktır secili değilse boş olucaktır
sonra kontrol edersin şöyle: if(array_key_exits('dvdCalar', $_REQUEST)){
//dvdcalar seçilmiş oluyo burda
}
-
yaklaşık 100 tane checkbox var ki o nasıl olucak ?
-
up up up
-
hocam şuan tam hatırlamıyorum ama çok fazma varsa checkbox id lerini dizi şeklinde ve asd[] gibi içi boş olsun o zaman dizi şeklinde alıp for each döngüsü ile işlem yapabilirsin
düzenleme : hepsine aynı ismi veriyormuşsun :Dhttp://enesdayanc.com/javascript-checkbox-hepsini-sec-ve-butun-secimleri-kaldir.html
burdaki örnek senin işini görmez ama birden çok check box için faydalı olabilir :D
ucenmi tarafından 11/Ağu/12 23:07 tarihinde düzenlenmiştir -
dreamveawer kurup onla yapabilirsin formda çok şey varsa, formu bile kendi oluşturuyo databasei oluştur yeterli
-
Hocam şöyle bir prototip hazırladım senin için.
Kodların tamamı http://tinypaste.com/753f3535
Örnek olması için tablo adında bir tablonun secenek bölümüne kayıt yaptırdım. Sen yapacağın işe göre ilgili yerleri düzenlersin.
Esas mantık şu; sen sayfaya checkbox olarak eklenecek elemanları secenekler dizisi altında topluyorsun. Sayfada döngü o elemanları kendisi ekliyor. Seçilip seçilmeme durumlarını sql'den alıp seçilmişse input'u eklerken checked="checked" ilavesi yapıyor. Sayfaya submit işlemi yapıldığında da tekrardan sql'deki tabloya giriş yapıyor. Dediğim gibi prototip; güncelleme, silme vs yaparsın. Ben sadece örnek olması amacıyla insert şeklinde yaptım bu haliyle kullanman pek mantıklı olmaz zaten.
Seçimleri sql'e ekletirken dizi elemanlarını implode ile string hale çeviriyoruz ki tutulması kolay olsun. Yine sql'den alırken dizi haline getiriyoruz ki seçeneklerde karşılık gelen elemanla index numaraları eşleşsin. Seçimler dizisindeki 0. eleman, seçenekler dizisindeki 0. elemana takabül ediyor.// ilave: kodlarda bir yerde hamallık yapmışım orayı düzenledim
Austen tarafından 13/Ağu/12 11:08 tarihinde düzenlenmiştir -
checkbox lari array olarak gonder daha sonra dongu ile kontrol ettir.
-
Slothere bunu yazdı
Hocam şöyle bir prototip hazırladım senin için.
Kodların tamamı http://tinypaste.com/753f3535
Örnek olması için tablo adında bir tablonun secenek bölümüne kayıt yaptırdım. Sen yapacağın işe göre ilgili yerleri düzenlersin.
Esas mantık şu; sen sayfaya checkbox olarak eklenecek elemanları secenekler dizisi altında topluyorsun. Sayfada döngü o elemanları kendisi ekliyor. Seçilip seçilmeme durumlarını sql'den alıp seçilmişse input'u eklerken checked="checked" ilavesi yapıyor. Sayfaya submit işlemi yapıldığında da tekrardan sql'deki tabloya giriş yapıyor. Dediğim gibi prototip; güncelleme, silme vs yaparsın. Ben sadece örnek olması amacıyla insert şeklinde yaptım bu haliyle kullanman pek mantıklı olmaz zaten.
Seçimleri sql'e ekletirken dizi elemanlarını implode ile string hale çeviriyoruz ki tutulması kolay olsun. Yine sql'den alırken dizi haline getiriyoruz ki seçeneklerde karşılık gelen elemanla index numaraları eşleşsin. Seçimler dizisindeki 0. eleman, seçenekler dizisindeki 0. elemana takabül ediyor.// ilave: kodlarda bir yerde hamallık yapmışım orayı düzenledim
çok sağol hocam : )
-
diğer bir yöntem :
javascript kısmı :
function eklecikar(a,b){ /// bu fonksiyon b id li nesnenin değerine a idli nesnenin ismini aralarına @ koyarak ekler
if(document.getElementById(a).checked){ // ekle
document.getElementById(b).value+="@"+a;
}else{//çıkar
document.getElementById(b).value=document.getElementById(b).value.replace("@"+a,"");
}
}
php kısmı :
<input type='hidden' name='liste' id='liste' value=''> // bu liste nesnesi seçili olanların idlerini yada isimlerini aralarına @ alarak gönderecektir
<?while($xx=mysql_fetch_array($dizi){
$name="A".$xx['id'];
?>
<input type="checkbox" id="<?=$name?>" value="<?=$xx['id']?>" onclick="eklecikar('<?=$name?>','liste');" name="<?=$name?>" style="border: 0px;">
<?}?>
gönderilen php deki işlemler :
<?
$dizi=explode("@",$_REQUEST['liste'];
foreach($dizi as $d){
echo eregi_replace('A','',$d);
}
//// bu şekilde seçili itemların idlerini bir dizi olarak aldık A ya da başka bir karakteri nesnelerin isimlerini sayısal atayamadığımız için kullandım sonra da bu 'A' karakterini eregi_replace ile temizledim
?>
-
echo eregi_replace('A','',$d);
eregi_replace desteği kalkmadı mı ya?
preg_replace('#A#i','',$d);
kanımca bu daha sağlıklı olur
