• 06-02-2007, 21:07:15
    #1
    Üyeliği durduruldu
    Bir Formda Diyelim ki 20 tane checkbox var.

    PHP Kodu:
    <input type="checkbox" name="il[]" value="1">
    <
    input type="checkbox" name="il[]" value="2">
    ....................

    Formu post ederken (database kayıt ve update) yaparken seçili olanları gönderemiyorum. Nasıl yapabilirim?

    Elinizde bununla ilgili bir örnek var mı php kodu olarak?

    Acilen Yardımınıza ihtiyacım var. Elinde böle bir kod grubu olan varsa verebilir mi acaba? içinde bu şekilde kodlar olan bir script, php sayfası falan...
  • 06-02-2007, 21:19:09
    #2
    o verdiğin şekilde göndermesi lazım form action ettiğin dosyada tanımlamayı unutmuş olabilirsin

    birde name="il[]" yerine name="il" olarak dene

    bende aynı sekilde bir form var ve calısıyor
  • 06-02-2007, 21:32:47
    #3
    Üyeliği durduruldu
    bi kodları gösterebilir misin nasıl post ettiğine bakmam gerekiyor. aslında daha öncesinde sıra ile idleri sayıyor ve value=<?=$deger?> oluyordu. fakat bunda otomaitk olarak saymadıgından gelmiyor.
  • 06-02-2007, 21:53:08
    #4
    <html>
    <head>
      <title></title>
    </head>
    <body>
    <?php
    if($_POST['il'][0]){
    	echo "<pre>";
    	print_r($_POST);
    	echo "</pre>";
    }
    else {
    	echo '<form name="formum" action="" method="post">';
     	echo '<input name="Name" type="text" value="Örnek Metin">';
     	echo "<br>";
    	for ($i=0; $i<10;$i++){ // Sözgelimi 9 tane checkbox var.
    		echo '<input type="checkbox" name="il[]" value="'.$i.'"> Checkbox'.$i;
    		echo "<br>";
    	}
    	echo '<input type="submit" value="Gönder Gitsin">';
    	echo "</form>";
    }
    ?>
    </body>
    </html>
    Örnek bir şeyler karaladım senin için. Checkbox'a değer vermene gerek yok, zaten seçilmediğinde varsayılan olarak yoktur. Seçildiğinde FF'de "on" oluyor değeri, IE'de sanırım "1" idi.

    Edit: İsteğini yanlış anlamışım, for döngüsünün içini editledim.
  • 06-02-2007, 22:12:06
    #5
    Üyeliği durduruldu
    teşekkürler dostum. peki bunu db ye kaydederken nasıl kullancaz değişken olarak?

    Çünkü burada echo edilen verinin ilkini alıyor. teşekkürler kod için bu arada.
  • 06-02-2007, 22:13:59
    #6
    Nirvana_ScS adlı üyeden alıntı: mesajı görüntüle
    teşekkürler dostum. peki bunu db ye kaydederken nasıl kullancaz değişken olarak?
    Çünkü burada echo edilen verinin ilkini alıyor. teşekkürler kod için bu arada.
    10 dakka bekleyebilirsen yazacağım bi koşu, selamlar.
  • 06-02-2007, 22:15:25
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php echo $_POST['checkbox1']; ?>
    bunu bir değişkene eşitleyebilirsin
    şayet register globals açık ise $checkbox olarakta kullanabilirsin
  • 06-02-2007, 22:34:34
    #8
    Nirvana_ScS adlı üyeden alıntı: mesajı görüntüle
    teşekkürler dostum. peki bunu db ye kaydederken nasıl kullancaz değişken olarak?
    Çünkü burada echo edilen verinin ilkini alıyor. teşekkürler kod için bu arada.
    <html>
    
    <head>
      <title>Form Örnek</title>
      <meta http-equiv="content-type" content="tex/html; charset=iso-8859-9" >
    </head>
    
    <body>
    
    <?php
    
    if($_POST['il'][0]){  // il[0] varsa form gönderilmiştir, mySQL olayına geç.
    
    	$link = mysql_connect("localhost", "user", "parola") or die ("Veritabanına bağlanamadık :()");
        mysql_select_db ("db") or die ("Could not select database");
    
        $say=count($_POST['il']); // Kaçtane il girilmiş onu öğrenelim.
    
        for ($i=0; $i<$say; $i++){ // Tabloya il sayısı kadar satır ekleyeceğiz.
    		$sorgu = "INSERT INTO tablom (name) VALUES('".$_POST['il'][$i]."')";
    		mysql_query ($sorgu)or die ($i.". ili eklerken hata oluştu !");
    		// Debug: MySQL Sorgusunu ekrana yazdırmak için alt kısımı uncomment yapın.
    		echo "Sorgu: ".$sorgu."<br>";
    	}
    
        echo "Tabloya $i adet il başarıyla eklendi.<br>\n";
    
    
    }
    
    else {
    	echo '<form name="formum" action="" method="post">';
     	echo '<input name="Name" type="text" value="Örnek Metin">';
     	echo "<br>";
    
    	for ($i=0; $i<10;$i++){ // Sözgelimi 9 tane checkbox var.
    		echo '<input type="checkbox" name="il[]" value="ilimiz'.$i.'"> Checkbox'.$i;
    		echo "<br>";
    	}
            // Alttakileri de değişiklik olsun diye ekledim.
    		echo '<input type="checkbox" name="il[]" value="İstanbul"> İstanbul<br>';
    		echo '<input type="checkbox" name="il[]" value="Ankara"> Ankara<br>';
    		echo '<input type="checkbox" name="il[]" value="İzmir'.$i.'"> İzmir<br>';
    		echo '<input type="checkbox" name="il[]" value="Trabzon"> Trabzon<br>';
    
    	echo '<input type="submit" value="Gönder Gitsin">';
    	echo "</form>";
    }
    
    ?>
    
    </body>
    </html>
    Ortaya böyle bir şey çıktı, örnek olması açısından sorguyu ekrana da yazdırdım. Kod daha iyi optimize edilirdi, mesela her il için ayrı bir sorgu yerine bütün illeri aynı sorguda eklemek daha mantıklı olacaktır. Sadece örnek olması açısından yazdım, umarım işinizi görür.
  • 06-02-2007, 22:53:55
    #9
    Üyeliği durduruldu
    Teşekkürler Arkadaşlar. elinize sağlık.

    --------------------------------------------
    @ $iliskituru1 = strip_tags(trim($_POST['iliskituru1']));
    @ $iliskituru2 = strip_tags(trim($_POST['iliskituru2']));
    @ $iliskituru3 = strip_tags(trim($_POST['iliskituru3']));
    @ $iliskituru4 = strip_tags(trim($_POST['iliskituru4']));
    @ $iliskituru5 = strip_tags(trim($_POST['iliskituru5']));

    if (!$iliskituru1) {
    $iliskituru1 = "0";
    }
    if (!$iliskituru2) {
    $iliskituru2 = "0";
    }
    if (!$iliskituru3) {
    $iliskituru3 = "0";
    }
    if (!$iliskituru4) {
    $iliskituru4 = "0";
    }
    if (!$iliskituru5) {
    $iliskituru5 = "0";
    }

    $iliskituru[0] = "1";
    $iliskituru[1] = "2";
    $iliskituru[2] = "3";
    $iliskituru[3] = "4";
    $iliskituru[4] = "5";

    $iliskituru = array(
    "$iliskituru1",
    "$iliskituru2",
    "$iliskituru3",
    "$iliskituru4",
    "$iliskituru5"
    );

    $iliskituru = implode(",",$iliskituru);

    --------------------------------------------
    bitti 2 saatte yazdım. herşey için teşekkürler.