In questo articolo vedremo come gestire le CheckBox di HTML, sfruttando PHP.

Intanto, avremo bisogno di una pagina di esempio:

checkbox.html:

<form action="gestire-checkbox.php" method="post">Ti piace InformaticaLab? <input name="piace" type="checkbox" value="si">
<input type="submit" value="Invia!"></form>

Vediamo adesso la pagina che riceverà i dati, ovvero “gestire-checkbox.php“:

<?php
if($_POST['piace'] == "si") {
    echo ":D";
} else {
    echo ":(";
}
?>

I dati della checkbox inviati dal form possono essere recuperati utilizzando l’array $_POST, da cui estrapoleremo il dato corrispondente al nome della checkbox che restituirà il value nel caso in cui la checkbox sia stata selezionata.

Gestire Gruppi di CheckBox

A volte capita che abbiamo bisogno di gestire più checkbox contemporaneamente.

Per esempio, poco tempo fa’ mi è capitato di dover creare un sistema di gestione di commenti e di dover dare la possibilità di eliminare più commenti contemporaneamente.

Ecco quindi un esempio su come gestire gruppi di checkbox con PHP:

Al solito, abbiamo la nostra pagina contentente il form checkbox.html:

<form action="gestire-checkbox.php" method="post">
Che cosa ti piace di InformaticaLab? 
Gli articoli <input name="piace[]" type="checkbox" value="articoli"> 
Gli utenti <input name="piace[]" type="checkbox" value="utenti"> 
La grafica <input name="piace[]" type="checkbox" value="grafica"> 
I video <input name="piace[]" type="checkbox" value="video"> 
I sorgenti <input name="piace[]" type="checkbox" value="sorgenti"> 
<input type="submit" value="Invia!">
</form>

La prima cosa che noterai, è che l’attributo “name” di tutte le checkbox è “piace[]” con due parentesi quadre alla fine del valore.

Utilizzando [] a questo modo, avviseremo PHP che tutte le checkbox con quel valore sono collegate. PHP quindi, creerà un’ array con tutti i valori del form che sarà recuperabile come prima utilizzando $_POST['piace'].

Per farti capire meglio, selezionando tutte le checkbox del form precedente avremo come risultato un’array contente i valori:

{ articoli,  utenti, grafica, video, sorgenti }

Adesso allora, vedremo un semplice script in PHP che stamperà i dati forniti dal form precedente:

<?php
$piace = $_POST['piace']; // prendo i dati dal form
if(!$piace){ 
    // In caso non abbia cliccato su nessuna checkbox:
    echo ":(";
} else { 
    // Altrimenti itero sugli elementi dell'array, e stampo il valore:
    for($i = 0; $i < count($piace); $i++) {
        echo('Di InformaticaLab, ti piace: ' . $piace[$i]);
    }
}
?-->

Credo che il sorgente sia commentato a sufficienza, in ogni caso non esitare a lasciare un commento in caso di dubbi!