Tekil Mesaj gösterimi
Alt 07 Ekim 2012, 19:36   #2
Çevrimdışı
YazılımMimarı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: check box ile ilgili yardım.




php bilmem fakat client tarafında yapman gerekeni çok basit anlatabilirim. Birde her seferinde formu post etmene luzum yok gereksiz sayfadaki bütün değişkenleri sunucuya yollamak demektir. ajax kullanmanı tavsiye ederim.

farzedelim elimizde 10 checkbox 'ımız var ve sen 3 tanesini işaretleyip, server 'a yollayacaksın. Mesele bu işaretlenmiş 3 tanesini yakalamak. Bizde bu işlemi yapalım.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<!DOCTYPE html> <html> <head> <script> function secDeger() { var sec=document.forms[0].sec; var txt=""; var i; for (i=0;i<sec.length;i++) { if (sec[i].checked) { txt=txt + sec[i].value + " "; } } document.getElementById("order").value= txt; } </script> </head> <body> <form> <input type="checkbox" name="sec" value="aaa">A seç<br> <input type="checkbox" name="sec" value="bbb">B seç<br> <input type="checkbox" name="sec" value="ccc">C seç<br> <input type="checkbox" name="sec" value="ddd">D seç<br> <br> <input type="button" onclick="secDeger()" value="Gonder"> <br><br> <input type="text" id="order" size="50"> </form>

Yukarıdaki kod formun içindeki 4 checkbox içinde seçilen değerleri alıp, seçili olan checkbox ların değerleri input text'in içinde dolduruyor.

Senin burda yapman gereken sey. Bu değerleri ajax ile php'ye göndermen.

Onuda şöyle yapabilirsin.



Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<!DOCTYPE html> <html> <head> <script> function secDeger() { var sec=document.forms[0].sec; var txt=""; var i; for (i=0;i<sec.length;i++) { if (sec[i].checked) { txt=txt + sec[i].value + "-"; } } dataString = "txt="+txt; $.ajax({ type: "POST", url: "gonder.php", data: dataString, dataType: "json", success: function(data) { alert(data); }, error:function (xhr, ajaxOptions, thrownError){ alert(thrownError); } }); } </script> </head> <body> <form> <input type="checkbox" name="sec" value="aaa">A seç<br> <input type="checkbox" name="sec" value="bbb">B seç<br> <input type="checkbox" name="sec" value="ccc">C seç<br> <input type="checkbox" name="sec" value="ddd">D seç<br> <br> <input type="button" onclick="secDeger()" value="Gonder"> <br> </form>

Bu forumda seçilin olan checkbox'ların value yani değerlerini alıp txt değişkenine atıyorum sonra bu değişkenleri dataString nesneme atıyorum. Bu nesneyide gonder.php dosyama json formatında yolluyorum.
gonder.php içinde yapmam gereken su olacak. txt değişkenini get ile al daha sonra "-" tire özel karakterine göre explode olması gerekiyor php fonksiyonun bu karaktere göre bölüp içindeki değerleri bir array içine doldur. Tahminimce explode zaten bir String Array'i tipinde olduğundan ztaen explode ettiğinde array içine dolmuş olacak. Sonra bu array 'in içinde bir for, foreach yada while döngüsü ile dönüp değerler ile ne yapmak istiyorsan yap ve tekrar geriyor json formatında bir dönüş yap. Eğer işlemlerin başarılı bir şekilde sonuçlandıysa "basarili" diye , eğer başarısız ise "basarisiz" diye bir donus yapıp tekrar arayuzde ajax içinde ekrana olumlu yada olumsuz bir geri bildirim yap.

Şöyle ki ;

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
success: function(data) { if(data === 'basarili'){ alert("İşlem başarılı bir şekilde gerçekleşti"); } else if (data === 'basarisiz'){ alert("İşlem gerçekleşirken hata oluştu"); } }, error:function (xhr, ajaxOptions, thrownError){ alert(thrownError); }


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet