nasıl PHP HTML işaretli olmasa bile tüm onay kutusunu değişkenleri alabilirim?

5 Cevap php

Ben PHP işaretli kutulardan sadece değerler döndürmek için görünüyor fark. Ben kontrol onay kutularını sadece değerleri, onay kutularını bir listesini değil, görmek istiyorum. Denetlenmeyen kutuları değişkenleri algılamak için bir yolu var mı?

Ben ayarları güncellemek için muktedir istiyorum çünkü ben sordum. Örneğin, ben zaten kontrol edilir bir kaç seçenek var ama bir kullanıcı bir seçeneğin işaretini karar verirse, ben devre dışı seçeneği güncelleyebilirsiniz böylece kontrolsüz değerini bilmek gerekir.

5 Cevap

Ben sadece bu sorunun içine kendimi koştu. Ben aynı isimde bir kopyasını hidden alan ekleyerek çözdü. Tarayıcının bu bilgiyi gönderir, ikinci alan (yani hidden alan ilk gelir sağlamak) ilk geçersiz kılar.

<input type="hidden" name="foo" value="">
<input type="checkbox" name="foo" value="bar">

checkbox işaretli değilse olsun:

$_REQUEST[ 'foo' ] == ""

checkbox işaretli ise olsun:

$_REQUEST[ 'foo' ] == "bar"

Bu PHP tamamen yapılabilir bir şey değildir.

Onlar kontrol eğer tarayıcılar sadece ayrıca denetlenmeyen onay kutularını hakkında bilgi göndermek istiyorsanız, formda gizli alan eklemek ve bunları yönetmek için javascript kullanmak gerekecek, onay kutuları hakkında bilgi göndermek.

Ben sadece bu sorun karşısında kendimi tökezledi ve ben POST veri sadece olanları yeniden kontrol sonra kontrolsüz için veritabanındaki tüm değerleri güncelleyerek bu sıralama, bu benim için çalışıyor ancak çay herkesin fincan olmayabilir.

Saf bir PHP uygulama mümkün görünmüyor olsa jQuery / AJAX kullanarak deneyebilirsiniz.

Eğer kontrol etmek istediğiniz bir 3 onay kutularını ve update_settings ikinci bir (aktif ya da değil) gibi bir ilk bağımsız değişken ve bir bool değer olarak onay kutusunun adını almak işlevlerden adıdır varsayalım.

Şu pasajı atın:

$checkboxes = array("checkbox1", "checkbox2", "checkbox3");
foreach($checkboxes as $checkbox){
    $checked = isset($_POST[$checkbox]);
    update_settings($checkbox, $checked);
}

Işe gidiyor Althouth Peter Kovacs çözüm, ben zaten isset kullanarak değişkenleri kontrol edebilirsiniz çünkü pratik sanmıyorum.