Saya punya 1 form dengan beberapa kotak centang di dalamnya (masing-masing dengan kode):
<input type="checkbox" name="check_list" value="<? echo $row['Report ID'] ?>">
Di mana $row['Laporan ID']
adalah kunci utama dalam sebuah database sehingga setiap nilai yang berbeda.
Bagaimana saya dapat memberitahu centang yang telah diperiksa? (Mungkin beberapa)
Ini adalah untuk yang masuk sistem dan aku memiliki sebuah tombol di bawah ini yang saya inginkan (bila diklik) untuk menghapus semua pesan (id: $row['Laporan ID']
) yang memiliki kotak centang's diperiksa.
Mengatur nama dalam bentuk check_list[]
dan anda akan dapat mengakses semua kotak centang sebagai array($_POST['check_list'][]
).
Berikut ini's sedikit sampel seperti yang diminta:
<form action="test.php" method="post">
<input type="checkbox" name="check_list[]" value="value 1">
<input type="checkbox" name="check_list[]" value="value 2">
<input type="checkbox" name="check_list[]" value="value 3">
<input type="checkbox" name="check_list[]" value="value 4">
<input type="checkbox" name="check_list[]" value="value 5">
<input type="submit" />
</form>
<?php
if(!empty($_POST['check_list'])) {
foreach($_POST['check_list'] as $check) {
echo $check; //echoes the value set in the HTML form for each checked checkbox.
//so, if I were to check 1, 3, and 5 it would echo value 1, value 3, value 5.
//in your case, it would echo whatever $row['Report ID'] is equivalent to.
}
}
?>
Edit Untuk mencerminkan apa yang @Marc mengatakan dalam komentar di bawah ini.
Anda dapat melakukan loop melalui semua diposting nilai-nilai.
HTML:
<input type="checkbox" name="check_list[]" value="<?=$rowid?>" />
<input type="checkbox" name="check_list[]" value="<?=$rowid?>" />
<input type="checkbox" name="check_list[]" value="<?=$rowid?>" />
PHP:
foreach($_POST['check_list'] as $item){
// query to delete where item = $item
}
anda harus nama anda centang yang sesuai:
<input type="checkbox" name="check_list[]" value="…" />
anda kemudian dapat mengakses semua telah memeriksa kotak centang dengan
// loop over checked checkboxes
foreach($_POST['check_list'] as $checkbox) {
// do something
}
ps. pastikan untuk benar-benar melarikan diri output (htmlspecialchars()
)
<input type="checkbox" name="check_list[<? echo $row['Report ID'] ?>]" value="<? echo $row['Report ID'] ?>">
Dan setelah posting, anda dapat loop melalui mereka:
if(!empty($_POST['check_list'])){
foreach($_POST['check_list'] as $report_id){
echo "$report_id was checked! ";
}
}
Atau mendapatkan nilai tertentu yang diposting dari halaman sebelumnya:
if(isset($_POST['check_list'][$report_id])){
echo $report_id . " was checked!<br/>";
}
Maaf, topik lama tapi ini adalah salah satu bagian penting untuk menyebutkan selama ini, yang @JamesRattray dan lain-lain sedang mengalami masalah dengan.
Jangan menutup diri input
tag (menggunakan />
) ketika anda mencoba untuk mengirim beberapa nilai untuk script PHP. Ketika anda menutup tag, itu berakhir array definisi dan anda hanya akan memiliki nilai tunggal yang diposting untuk anda script pada pengajuan. Dalam efek @Scone 's jawaban mungkin tidak bekerja sampai />
berubah.
Ini adalah apa yang menyebabkan Warning: Invalid argument supplied for foreach() in /home1/...
PHP kesalahan dalam kasus ini.
EDIT: Seperti disebutkan di komentar di bawah ini, penelitian lebih lanjut menunjukkan bahwa ini adalah tergantung pada DOCTYPE. Jika anda memiliki DOCTYPE set untuk XHTML, itu akan memerlukan input tag harus ditutup. Jika anda memiliki DOCTYPE set HTML5, itu akan memerlukan input tag tidak akan ditutup. Ada juga kemungkinan bahwa ini bisa didikte oleh apa browser pengguna melihat halaman dalam dan seberapa baik itu berikut DOCTYPE yang ditentukan dalam bagian kode.
It's cukup sederhana. Perhatikan dan anda'll get it right away! :)
Anda akan membuat sebuah html array, yang kemudian akan dikirim ke array php. Kode html anda akan terlihat seperti ini:
<input type="checkbox" name="check_list[1]" alt="Checkbox" value="checked">
<input type="checkbox" name="check_list[2]" alt="Checkbox" value="checked">
<input type="checkbox" name="check_list[3]" alt="Checkbox" value="checked">
Mana[1] [2] [3]
ini adalah ID dari pesan-pesan anda, yang berarti bahwa anda akan
echoanda
$row['Laporan ID']` di tempat mereka.
Kemudian, ketika anda mengirimkan formulir, PHP array akan terlihat seperti ini:
print_r($check_list)
[1] => diperiksa [3] => diperiksa
Tergantung pada yang diperiksa dan yang tidak.
I'm yakin anda dapat melanjutkan dari titik ini ke depan.