IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   PHP (https://www.ircforumlari.net/php/)
-   -   check box ile ilgili yardım. (https://www.ircforumlari.net/php/506271-check-box-ile-ilgili-yardim.html)

Yeppa 06 Ekim 2012 10:32

check box ile ilgili yardım.
 
Merhaba, kullandığım sistemde

PHP- Kodu:

    <input type='submit' value='Seçilenleri Onayla' name='topluonayla'>&nbsp;&nbsp;
    <
input type='button' value='Seçilenleri Sil' name='toplusil' onClick='document.ti.action=\"yonet.php?m=soru&is=toplusil&ret=onaybekleyenler&sayfa=$sayfa\";document.ti.submit();'>
        </
form>"; 

böyle bir veri var, fakat bunu kullanabilmem için de ekranda ki bütün kutucukları manuel işaretleyip seçmem lazım. Bu işi manuel değilde tek tıkla nasıl hepsinin seçimini yaptırabilirim?

YazılımMimarı 07 Ekim 2012 19:36

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:

<!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:

<!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:

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);
                    }



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:00.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net