Διατήρηση της επιλεγμένης τιμής σε checkbox μετά την αποστολή σε PHP
Ας κάνουμε τώρα την τιμή του checkbox
να διατηρείται μετά την αποστολή. Για
αυτό θα ελέγξουμε ότι το $_GET['flag']
υπάρχει (δηλαδή υπήρξε αποστολή της φόρμας)
και ισούται με τη μονάδα (δηλαδή το πλαίσιο ελέγχου είναι επιλεγμένο).
Εάν πληρούνται αυτές οι δύο προϋποθέσεις, τότε θα εμφανίσουμε
στο checkbox το χαρακτηριστικό checked:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag" <?php
if (isset($_GET['flag']) and $_GET['flag'] === '1')
echo 'checked';
?>
>
<input type="submit">
</form>
Ο έλεγχος μπορεί να απλοποιηθεί αν γνωρίζουμε με βεβαιότητα
ότι το κρυφό πεδίο εισόδου μεταδίδει 0. Σε αυτήν
την περίπτωση, εάν το checkbox δεν είναι επιλεγμένο, τότε στο $_GET['flag']
θα υπάρχει '0', ενώ εάν δεν έχει γίνει ακόμα αποστολή
της φόρμας, τότε θα υπάρχει null.
Σε και τις δύο αυτές περιπτώσεις δεν πρέπει να εμφανίζουμε
το checked. Και τις δύο αυτές περιπτώσεις μπορούμε
να εντοπίσουμε με τη συνάρτηση empty. Έτσι
μπορούμε να ελέγξουμε ότι το $_GET['flag']
δεν είναι κενό, και μόνο σε αυτήν την περίπτωση να εμφανίσουμε το checked:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag"
value="1"
<?php if (!empty($_GET['flag'])) echo 'checked' ?>
>
<input type="submit">
</form>
Δημιουργήστε τρία checkboxes που θα διατηρούν την τιμή τους μετά την αποστολή.