Bir form göndererek zaman kontrolsüz onay kutularını bir listesini almak nasıl?

2 Cevap

Örneğin ben bu kodu vardır:

$b = "";
 while ($row = mysql_fetch_array($rows)) {
        if ($row['enabled'] == 1) {
                    $b = "checked";
              } else {
                     $b = "":
                     }

"<\ input name = 'nam [$ row [id]]' type = 'kutusu' değeri = '$ row [id]' $ / b>" echo;

}

Ben bu kodu çalıştırdığınızda, ben, onay kutularını bir listesini alacak bazıları kontrol edilir ve diğerleri değildir.

Ben kontrol onay kutularını bir listesini almak için bu kodu kullanabilirsiniz.

 if (isset($_POST['sub'])) { //check if form has been submitted or not
$nam = $_POST['nam'];
if (!empty($nam)) {

              foreach($nam as $k=>$val){

    // proccess operation with checked checkboxes
               }

}           

Ben formu gönderdikten sonra unckecked onay kutularını listesini alabilirsiniz bilmek gerekir.

Şimdiden teşekkürler.

2 Cevap

Onay kutuları dinamik olarak oluşturulur, bu önemsiz bir iştir:

Bir adlandırma kuralı oluşturun. Örneğin, her onay kutusunu DB bir satır bağlı olduğunu söylüyorlar sağlar, DB her satır bir birincil anahtarı vardır. Bu anahtarın kapalı dayalı her kutucuğa isim olabilir:

<input type="checkbox" id="foo_1" name="foo_1" />
<input type="checkbox" id="foo_2" name="foo_2" />
<input type="checkbox" id="foo_3" name="foo_3" />

Şimdi form gönderildiğinde zaman Kimliği adlı almak ve şöyle isteği işlemek için veritabanını sorgulayabilirsiniz:


$res = mysql_query("select * from foo;");
while($row = mysql_fetch_array($res))
    $checked = isset($_POST["foo_{$row['id']}");
    ...
}

Tarayıcılar denetlenmeyen kutuları için hiçbir şey göndermek, böylece tek umut size her onay kutusunu adını (veya her onay kutusunu için gizli bir alan eklemek) anlatıyor gizli bir alanı yaratıyor.