Jawaban:
Jika halaman HTML Anda terlihat seperti ini:
<input type="checkbox" name="test" value="value1">
Setelah mengirimkan formulir, Anda dapat memeriksanya dengan:
isset($_POST['test'])
atau
if ($_POST['test'] == 'value1') ...
on
, ketika dicentang. Oleh karena itu untuk kompatibilitas lebih mudah digunakan isset($_POST['checkboxName'])
.
value1
jika kotak centang dicentang. Jika tidak dicentang, $_POST['test']
sama sekali tidak ada.
Zend Framework menggunakan peretasan bagus di kotak centang, yang juga bisa Anda lakukan sendiri:
Setiap kotak centang yang dihasilkan dikaitkan dengan bidang tersembunyi dengan nama yang sama, ditempatkan tepat sebelum kotak centang, dan dengan nilai "0". Kemudian jika kotak centang Anda sebagai nilai "1", Anda akan selalu mendapatkan nilai '0' atau '1' di GET atau POST yang dihasilkan
<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">
input[type="checkbox"]
-satunya)?
Saat menggunakan kotak centang sebagai array:
<input type="checkbox" name="food[]" value="Orange">
<input type="checkbox" name="food[]" value="Apple">
Anda harus menggunakan in_array()
:
if(in_array('Orange', $_POST['food'])){
echo 'Orange was checked!';
}
Ingatlah untuk memeriksa array yang diatur terlebih dahulu, seperti:
if(isset($_POST['food']) && in_array(...
foreach ($_POST['food'] as $selected_food)
untuk bekerja pada satu diperiksa bagus, terima kasih
Biarkan html Anda untuk kotak centang Anda akan seperti
<input type="checkbox" name="check1">
Kemudian setelah mengirimkan formulir Anda, Anda perlu memeriksa suka
if (isset($_POST['check1'])) {
// Checkbox is selected
} else {
// Alternate code
}
Dengan asumsi itu check1
harus nama kotak centang Anda. Dan jika metode pengiriman formulir GET
Anda maka Anda perlu memeriksa dengan $_GET
variabel seperti
if (isset($_GET['check1'])) {
// Checkbox is selected
}
$check_value = isset($_POST['my_checkbox_name']) ? 1 : 0;
Saya telah menggunakan trik ini selama beberapa tahun dan berfungsi dengan baik tanpa masalah untuk memeriksa / tidak mencentang status kotak centang saat menggunakan dengan PHP dan Database.
Kode HTML: (untuk Tambah Halaman)
<input name="status" type="checkbox" value="1" checked>
Petunjuk: hapus "kotak centang" jika Anda ingin menunjukkannya sebagai tidak dicentang secara default
Kode HTML: (untuk Edit Halaman)
<input name="status" type="checkbox" value="1"
<?php if ($row['status'] == 1) { echo "checked='checked'"; } ?>>
Kode PHP: (digunakan untuk Tambah / Edit halaman)
$status = $_POST['status'];
if ($status == 1) {
$status = 1;
} else {
$status = 0;
}
Petunjuk: Akan selalu ada nilai kosong kecuali jika pengguna memeriksanya. Jadi, kita sudah memiliki kode PHP untuk menangkapnya dan menyimpan nilainya menjadi 0. Kemudian, cukup gunakan variabel $ status untuk database.
Untuk memeriksa apakah kotak centang dicentang gunakan kosong ()
Ketika formulir dikirimkan, kotak centang akan SELALU ditetapkan, karena SEMUA variabel POST akan dikirim bersama formulir.
Periksa apakah kotak centang dicentang dengan kosong sebagai berikut:
//Check if checkbox is checked
if(!empty($_POST['checkbox'])){
#Checkbox selected code
} else {
#Checkbox not selected code
}
Anda dapat memeriksa nilai terkait sebagai diset dan tidak kosong dalam array $ _POST atau $ _GET tergantung pada tindakan formulir Anda.
yaitu: Dengan formulir POST menggunakan name
"tes" (yaitu:, <input type="checkbox" name="test">
Anda akan menggunakan:
if(isset($_POST['test']) {
// The checkbox was enabled...
}
Pelajari tentang isset
yang merupakan "fungsi" built-in yang dapat digunakan dalam pernyataan jika untuk mengetahui apakah suatu variabel telah digunakan atau ditetapkan
Contoh:
if(isset($_POST["testvariabel"]))
{
echo "testvariabel has been set!";
}
Nah, contoh-contoh di atas hanya berfungsi ketika Anda ingin menyisipkan nilai, tidak berguna untuk memperbarui nilai yang berbeda ke kolom yang berbeda, jadi di sini adalah sedikit trik saya untuk memperbarui:
//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[]" />
....
Rahasianya baru saja memperbarui semua VALUES terlebih dahulu (dalam hal ini ke 0), dan karena hanya akan mengirim nilai yang dicentang, itu berarti semua yang Anda dapatkan harus disetel ke 1, jadi semua yang Anda tetapkan menjadi 1.
Contohnya adalah PHP tetapi berlaku untuk semuanya.
Selamat bersenang-senang :)
$is_checked = isset($_POST['your_checkbox_name']) &&
$_POST['your_checkbox_name'] == 'on';
Evaluasi hubung singkat akan dilakukan agar Anda tidak mengakses your_checkbox_name
ketika itu tidak dikirimkan.
Pemeriksaan boolean minimalis dengan penahan posisi sakelar
<?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>
di BS3 bisa Anda masukkan
<?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>
Harap Perhatikan penggunaanisset($datosOrdenCompra[0]['exenta'])
Wordpress memiliki checked()
fungsi. Referensi: https://developer.wordpress.org/reference/functions/checked/
checked( mixed $checked, mixed $current = true, bool $echo = true )
Deskripsi Membandingkan dua argumen pertama dan jika tanda identik seperti dicentang
Parameter $ checked (campuran) (Diperlukan) Salah satu nilai untuk membandingkan
$ current (mixed) (Opsional) (true) Nilai lain untuk dibandingkan jika tidak hanya benar Nilai default: true
$ echo (bool) (Opsional) Apakah akan menggema atau hanya mengembalikan string Nilai default: true
Kembalikan atribut #Return (string) html atau string kosong
<?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']);
}
?>