Saya memiliki 1 formulir dengan beberapa kotak centang di dalamnya (masing-masing berisi kode):
<input type="checkbox" name="check_list" value="<? echo $row['Report ID'] ?>">
Di mana $row['Report ID']
kunci utama dalam database-sehingga setiap nilai berbeda.
Bagaimana saya bisa mengetahui kotak centang mana yang sudah diperiksa? (Mungkin banyak)
Ini untuk sistem kotak masuk dan saya memiliki tombol di bawah ini yang saya inginkan (ketika diklik) untuk menghapus semua pesan (id dari:) $row['Report ID']
yang dicentang kotak centangnya.
$check
akan samaon
.if($_POST)
- Tidak berguna,$_POST
akan selalu benar. Anda harus memeriksa jika!empty($_POST['check_list'])
bukan.array_key_exists('check_list', $_POST) && !empty($_POST['check_list'])
empty()
tidak menyebabkan kesalahan ini. Dari manual:empty() does not generate a warning if the variable does not exist.
Sunting Untuk mencerminkan apa yang @Marc katakan dalam komentar di bawah.
Anda dapat melakukan perulangan melalui semua nilai yang diposting.
HTML:
PHP:
sumber
[]
sintaks dalam definisi bidang, yang membuat PHP membuat nilai $ _POST sebagai array. Kalau tidak, itu akan menjadi nilai non-array tunggal, menyebabkan foreach () loop meledak.Anda harus memberi nama kotak centang Anda sesuai:
Anda kemudian dapat mengakses semua kotak centang yang dicentang dengan
ps. pastikan untuk keluar dari output Anda dengan benar (
htmlspecialchars()
)sumber
Dan setelah posting, Anda dapat mengulanginya:
Atau dapatkan nilai tertentu yang diposkan dari halaman sebelumnya:
sumber
Maaf, topik lama tapi ini adalah salah satu bagian penting untuk disebutkan untuk ini, yang @JamesRattray dan yang lainnya mengalami masalah dengan.
JANGAN menutup
input
tag sendiri (menggunakan/>
) ketika Anda mencoba memposting beberapa nilai ke skrip PHP. Ketika Anda menutup sendiri tag, itu mengakhiri definisi array dan Anda hanya akan memiliki satu nilai yang diposting ke skrip Anda saat pengiriman. Akibatnya, jawaban @Scone mungkin tidak berfungsi hingga/>
diubah.Inilah yang menyebabkan
Warning: Invalid argument supplied for foreach() in /home1/...
kesalahan PHP dalam hal ini.EDIT: Seperti disebutkan dalam komentar di bawah, penelitian lebih lanjut menunjukkan bahwa ini tergantung pada DOCTYPE. Jika Anda mengatur DOCTYPE untuk XHTML, tag input harus ditutup. Jika Anda memiliki kumpulan HTML5 DOCTYPE, tag input tidak perlu ditutup. Ada juga kemungkinan bahwa ini dapat ditentukan oleh browser apa pengguna melihat halaman dan seberapa baik mengikuti DOCTYPE yang ditentukan dalam kode.
sumber
Sederhana saja. Perhatikan dan Anda akan segera mendapatkannya! :)
Anda akan membuat array html, yang kemudian akan dikirim ke array php. Kode html Anda akan terlihat seperti ini:
Di mana
[1] [2] [3]
adalahID
s pesan Anda, yang berarti bahwa Anda akanecho
Anda$row['Report ID']
di tempat mereka.Kemudian, ketika Anda mengirimkan formulir, array PHP Anda akan terlihat seperti ini:
print_r($check_list)
[1] => checked [3] => checked
Tergantung mana yang diperiksa dan mana yang tidak.
Saya yakin Anda dapat melanjutkan dari titik ini ke depan.
sumber
check_list[]
akan dimulai dengancheck_list[0]
alih - alihcheck_list[1]
.Jika Anda ingin melakukannya, silakan, jangan lakukan ini lagi.
Con esto me aseguro que los valores sean 1 y separados por coma. Setelah MySQL menjadi lebih populer, silakan klik di sini:
sumber