Yanıtlar:
HTML sayfanız aşağıdaki gibi görünüyorsa:
<input type="checkbox" name="test" value="value1">
Formu gönderdikten sonra kontrol edebilirsiniz:
isset($_POST['test'])
veya
if ($_POST['test'] == 'value1') ...
on
, işaretlendiklerinde değer de olabilir . Bu nedenle uyumluluk için sadece kullanımı daha kolaydır isset($_POST['checkboxName'])
.
value1
, onay kutusu işaretlenirse olur. İşaretli değilse, $_POST['test']
sadece mevcut olmazdı.
Zend Framework, kendiniz de yapabileceğiniz onay kutularında güzel bir kesmek kullanır:
Oluşturulan her onay kutusu, aynı adda, onay kutusundan hemen önce ve "0" değerinde gizli bir alanla ilişkilendirilir. O zaman onay kutunuz "1" değeri ise, sonuçta elde edilen GET veya POST'ta daima '0' veya '1' değerini alırsınız
<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">
input[type="checkbox"]
's)?
Onay kutularını dizi olarak kullanırken:
<input type="checkbox" name="food[]" value="Orange">
<input type="checkbox" name="food[]" value="Apple">
Kullanmalısınız in_array()
:
if(in_array('Orange', $_POST['food'])){
echo 'Orange was checked!';
}
Önce dizinin ayarlandığını kontrol etmeyi unutmayın, örneğin:
if(isset($_POST['food']) && in_array(...
foreach ($_POST['food'] as $selected_food)
olarak kontrol kutuları ve işaretli bir üzerinde çalışmak güzel, teşekkürler
Onay kutunuz için HTML'nizin aşağıdaki gibi olmasına izin verin
<input type="checkbox" name="check1">
Sonra formunuzu gönderdikten sonra aşağıdaki gibi kontrol etmeniz gerekir
if (isset($_POST['check1'])) {
// Checkbox is selected
} else {
// Alternate code
}
Bunun check1
onay kutusu adınız olması gerektiğini varsayarsak ve form gönderme yönteminiz ise, aşağıdaki gibi değişkenleri GET
kontrol etmeniz gerekir$_GET
if (isset($_GET['check1'])) {
// Checkbox is selected
}
$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;
Ben birkaç yıldır bu hile kullanıyorum ve PHP ve Veritabanı ile kullanırken kontrol / kontrol edilmemiş onay kutusu durumu için herhangi bir sorun olmadan mükemmel çalışır.
HTML Kodu: (Sayfa Ekle için)
<input name="status" type="checkbox" value="1" checked>
İpucu: varsayılan olarak işaretlenmemiş olarak göstermek istiyorsanız "onay kutusunu" kaldırın
HTML Kodu: (Sayfayı Düzenle için)
<input name="status" type="checkbox" value="1"
<?php if ($row['status'] == 1) { echo "checked='checked'"; } ?>>
PHP Kodu: (Sayfa Ekle / Düzenle için kullanın)
$status = $_POST['status'];
if ($status == 1) {
$status = 1;
} else {
$status = 0;
}
İpucu: Kullanıcı kontrol etmediği sürece her zaman boş bir değer olacaktır. Yani, zaten onu 0 tutmak için PHP kodu var değeri 0 tutmak. Sonra, sadece veritabanı için $ status değişkeni kullanın.
Bir onay kutusunun işaretli olup olmadığını kontrol etmek için boş () kullanın
Form gönderildiğinde, TÜM POST değişkenleri formla birlikte gönderileceğinden, onay kutusu HER ZAMAN ayarlanacaktır .
Onay kutusunun boş olarak işaretli olup olmadığını kontrol edin:
//Check if checkbox is checked
if(!empty($_POST['checkbox'])){
#Checkbox selected code
} else {
#Checkbox not selected code
}
Formunuzun işlemine bağlı olarak $ _POST veya $ _GET dizisinde karşılık gelen değeri ayarlanmış ve boş değil olarak kontrol edebilirsiniz.
ie: name
"Test" in kullanıldığı bir POST formuyla (yani: şunu <input type="checkbox" name="test">
kullanırsınız:
if(isset($_POST['test']) {
// The checkbox was enabled...
}
Hakkında bilgi al isset
Değişkenin kullanılıp kullanılmadığını veya ayarlanıp ayarlanmadığını belirtmek için if ifadelerinde kullanılabilecek yerleşik bir "işlev"
Misal:
if(isset($_POST["testvariabel"]))
{
echo "testvariabel has been set!";
}
Yukarıdaki örnekler yalnızca, bir değeri INSERT etmek istediğinizde çalışır, farklı değerleri farklı sütunlara GÜNCELLEME için yararlı değildir, bu yüzden güncellemek için küçük numaram:
//EMPTY ALL VALUES TO 0
$queryMU ='UPDATE '.$db->dbprefix().'settings SET menu_news = 0, menu_gallery = 0, menu_events = 0, menu_contact = 0';
$stmtMU = $db->prepare($queryMU);
$stmtMU->execute();
if(!empty($_POST['check_menus'])) {
foreach($_POST['check_menus'] as $checkU) {
try {
//UPDATE only the values checked
$queryMU ='UPDATE '.$db->dbprefix().'settings SET '.$checkU.'= 1';
$stmtMU = $db->prepare($queryMU);
$stmtMU->execute();
} catch(PDOException $e) {
$msg = 'Error: ' . $e->getMessage();}
}
}
<input type="checkbox" value="menu_news" name="check_menus[]" />
<input type="checkbox" value="menu_gallery" name="check_menus[]" />
....
Sır, önce tüm DEĞERLER'i güncellemek (bu durumda 0 olarak) ve yalnızca kontrol edilen değerleri göndereceğinden, aldığınız her şeyin 1 olarak ayarlanması gerektiği için her şeyi 1 olarak ayarlayın.
Örnek PHP'dir, ancak her şey için geçerlidir.
İyi eğlenceler :)
$is_checked = isset($_POST['your_checkbox_name']) &&
$_POST['your_checkbox_name'] == 'on';
Kısa devre değerlendirmesi , gönderilmediğinde erişmemeniz için dikkatli olacaktır your_checkbox_name
.
Anahtar konumu sabitlenmiş minimalist bir boole kontrolü
<?php
$checked = ($_POST['foo'] == ' checked');
?>
<input type="checkbox" name="foo" value=" checked"<?=$_POST['foo']?>>
<?php
if (isset($_POST['add'])) {
$nama = $_POST['name'];
$subscribe = isset($_POST['subscribe']) ? $_POST['subscribe'] : "Not Checked";
echo "Name: {$nama} <br />";
echo "Subscribe: {$subscribe}";
echo "<hr />";
}
?>
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST" >
<input type="text" name="name" /> <br />
<input type="checkbox" name="subscribe" value="news" /> News <br />
<input type="submit" name="add" value="Save" />
</form>
BS3'e
<?php
$checked="hola";
$exenta = $datosOrdenCompra[0]['exenta'];
var_dump($datosOrdenCompra[0]['exenta']);
if(isset($datosOrdenCompra[0]['exenta']) and $datosOrdenCompra[0]['exenta'] == 1){
$checked="on";
}else{
$checked="off";
}
?>
<input type="checkbox" id="exenta" name="exenta" <?php echo $checked;?> > <span class="label-text"> Exenta</span>
Lütfen dikkatisset($datosOrdenCompra[0]['exenta'])
Wordpress checked()
işlevi var. Referans: https://developer.wordpress.org/reference/functions/checked/
checked( mixed $checked, mixed $current = true, bool $echo = true )
Açıklama İlk iki argümanı ve işaretlenirse aynı işaretleri karşılaştırır
Parametreler $ checked (mixed) (Zorunlu) Karşılaştırılacak değerlerden biri
$ current (mixed) (İsteğe bağlı) (true) Yalnızca doğru değil karşılaştırılacak diğer değer Varsayılan değer: true
$ echo (bool) (İsteğe bağlı) Yankıyı yankılamak veya sadece döndürmek mi Varsayılan değer: true
#Return (string) html niteliğini veya boş dizeyi döndür
<?php
if(isset($_POST['nameCheckbox'])){
$_SESSION['fr_nameCheckbox'] = true;
}
?>
<input type="checkbox" name="nameCheckbox"
<?php
if(isset($_SESSION['fr_nameCheckbox'])){
echo 'checked';
unset($_SESSION['fr_nameCheckbox']);
}
?>