Έχω 1 φόρμα με πολλαπλά πλαίσια ελέγχου (το καθένα με τον κωδικό):
<input type="checkbox" name="check_list" value="<? echo $row['Report ID'] ?>">
Όπου $row['Report ID']
είναι ένα πρωτεύον κλειδί σε μια βάση δεδομένων -έτσι κάθε τιμή είναι διαφορετική.
Πώς θα μπορούσα να καταλάβω ποια κουτάκια ελέγχου έχουν τσεκαριστεί; (Ίσως πολλαπλά)
Αυτό είναι για ένα σύστημα εισερχομένων και έχω ένα κουμπί κάτω από το οποίο θέλω (όταν πατηθεί) να διαγράψει όλα τα μηνύματα (ids του: $row['Report ID']
) που έχουν τσεκαρισμένο το checkbox's.
Ορίστε το όνομα στη φόρμα σε check_list[]
και θα μπορείτε να έχετε πρόσβαση σε όλα τα πλαίσια ελέγχου ως πίνακα ($_POST['check_list'][]
).
Ακολουθεί ένα μικρό δείγμα όπως ζητήθηκε:
<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.
}
}
?>
πρέπει να ονομάσετε τα πλαίσια ελέγχου σας ανάλογα:
<input type="checkbox" name="check_list[]" value="…" />
μπορείτε στη συνέχεια να έχετε πρόσβαση σε όλα τα τσεκαρισμένα πλαίσια ελέγχου με την εντολή
// loop over checked checkboxes
foreach($_POST['check_list'] as $checkbox) {
// do something
}
ps. φροντίστε να αποφύγετε σωστά την έξοδο (htmlspecialchars()
)
<input type="checkbox" name="check_list[<? echo $row['Report ID'] ?>]" value="<? echo $row['Report ID'] ?>">
Και μετά τη δημοσίευση, μπορείτε να κάνετε βρόχο μέσα από αυτά:
if(!empty($_POST['check_list'])){
foreach($_POST['check_list'] as $report_id){
echo "$report_id was checked! ";
}
}
Ή να πάρετε μια συγκεκριμένη τιμή που δημοσιεύτηκε από την προηγούμενη σελίδα:
if(isset($_POST['check_list'][$report_id])){
echo $report_id . " was checked!<br/>";
}