checkbox kontrol

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
alikus

checkbox kontrol

Mesaj gönderen alikus »

Arkadaşlar sayfamda checkbox larla kullanıcıya seçim yaptırıyorum ve aynı sayfa sayfaya tekrar submit yaptırıyorum. Yalnız nesne isimlerini dizi olarak kullanıyorum.

Kod: Tümünü seç

echo ('<input name="KitapNO[]" type="hidden" value="'.$bulunan_ID.'">');				
echo ('<input name="onay[]" type="checkbox" checked  onclick="butonislem()">');
tekrar sayfa submit olduğun da checkbox ların check li olup olmadığını nasıl test ettireceğim. Yardımlarınız için teşekkürler
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

Merhaba,
Şöyle bişey hazırladım, heralde aradığın cevap içindedir.

Kod: Tümünü seç

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
</head>

<body>
<?
	if ($_POST['adim'] == '2'){
		while (list($key,$id) = each($_POST['onay'])){
			echo "Key: $key - Id: $id <br>";
		}
	}
?>
<form name="form1" method="post" action="">
<?
	for ($i=0;$i<10;$i++){
?>
<input name="onay[]" type="checkbox" value="<?=$i?>" id="<?=$i?>"><?=$i."<br>";?>
<?
	}
?>
<input name="adim" type="hidden" id="adim" value="2">
<br>
<input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

Aslında bütün olay, gönderilen diziyi alırken oluyor,

Kod: Tümünü seç

while (list($key,$id) = each($_POST['onay'])){
  echo "Key: $key - Id: $id <br>";
}
burda Onay dizisinden gelen Value değerlei $id değişkenine konuyor. Yalnız input ların Value 'larına değer koymayı unutma.
alikus

Mesaj gönderen alikus »

Bende şöyle bir kod var. Başka bir sayfadan sepete atılanları burada listeliyorum ve her satıra bir checkbox koyduruyorum.

Kod: Tümünü seç

$aranan="!";
$liste=split($aranan,$sepet);

for ($i=0 ; $i < $sepetsayi; $i++ )
	  		{ ?>
		  <tr align="left" valign="middle">
		    <td><!--DWLayoutEmptyCell-->&nbsp;</td>
		    <td height="20"><span class="style2">
	        <?php 
					$bul_ID=strpos($liste[$i], "-");
					$bulunan_ID=substr($liste[$i] , 0 , $bul_ID);
					$sqlsepet  = "SELECT * FROM Kitap where Kitap_ID='$bulunan_ID'"; 
			    	$sonucsepet = mysql_query($sqlsepet);
			    	$verisepet  = mysql_fetch_array($sonucsepet);
					echo $verisepet[KitapAdi].'-'.$bulunan_ID;
					echo ('<input name="KitapNO[]" type="hidden" value="'.$bulunan_ID.'">');					
					if ($bulunan_ID<>'')
					      {
							echo ('<input name="test" type="hidden" value="dolu">');
						  }	
					
				?>
		    </span>			</td>
		    <td>
				<span class="style2">
				<?php
					echo $verisepet[Fiyat];
				?>
			</span>			</td>
		    <td>
				<span class="style2">
				<?php
					$bul_Adet=strpos($liste[$i],"*");
					$bulunan_Adet=substr($liste[$i] , $bul_ID+1,$bul_Adet-$bul_ID-1);
					$carp=$verisepet[Fiyat]*$bulunan_Adet;
					$TopFiyat=$TopFiyat+$carp;
					echo ('<input name="Adet[]" type="text" size="1" value="'.$bulunan_Adet.'">');
					
				?>
			</span>			</td>
		    <td>
			    <span class="style2">
			    <?php 
					echo ('<input name="onay[]" id="onay_'.$i.'" type="checkbox" checked value="1" onclick="butonislem()">');
				?>
		    </span>			</td>
	      </tr>
<?php
			}
?>
Bu listeleme bir sorun yok daha sonra
Yukarıdaki kodun üst tarafına koyduğun

Kod: Tümünü seç

$DigerSepet='';
if ($test=='dolu')
	{
		  for($f=0; $f <= $sepetsayi; $f++)
   		     {
			 	if ($onay[$f]!='')
					{   
						$DigerSepet.=$KitapNO[$f].'-'.$Adet[$f].'*!';
				  	    $m=$m+1;
					}
			 }
  		  $sepet='';	 					  
		  $sepet=$DigerSepet;
		  $DigerSepet='';
	      $sepetsayi=$m;
		  $m=0;
	}  
bu kodla checkli leri kontrol ettirip check siz olanları ekrana listelettirmiyorum. Ama çekini kaldırdığın değil hep son kayıdı siliyor ve listelemiyor.
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

Şu şekilde bir kontrol denemişsin:

Kod: Tümünü seç

             if ($onay[$f]!='') 
               {    
                  $DigerSepet.=$KitapNO[$f].'-'.$Adet[$f].'*!'; 
                     $m=$m+1; 
               }


Onun yerine aşağıdaki gibi while ile sırayla, formdan gelen onay dizisini değişkenlere atarak kontrol etmeyi denemeni tavsiye ederim;

Kod: Tümünü seç

      
while (list($key,$id) = each($_POST['onay'])){ 
    if (($key == '') or ($id=='')){
       //.. işlemler
   }
} 
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Mesaj gönderen mulus »

Soruyu pek anlamadım....
Submit ettiğinde seçili olanları listeletmek mi istiyorsun? yoksa seçili olanlar submitten sonra tekrar seçili mi kalsın istiyorsun?
Cevapla