par
Ryle » 20 oct. 2006, 12:34
Pour savoir si une checkbox a été cochée, il suffit de vérifier si elle est définie (isSet($_POST['ma_case']), une case non cochée n'est pas envoyée via le formulaire). Tel que c'est fait, il te faut malheureusement tester toutes tes checkbox une par une. Il te faudrait donc relancer ta requête, récupérer les valeurs, reconstruire tes noms et tester chaque case.
La meilleure solution à mon sens serait de renommer tes cases pour qu'elles aient toutes le même nom (avec des [] pour que php récupère le résultat sous forme de tableau), et ainsi savoir aisément si au moins une case a été cochée, voire même laquelle en spécifiant sa valeur

Je te recommande donc d'écrire tes cases ainsi :
echo '<input type="checkbox" name="cadit[]" value="' . $row[id_formation] . '">';
côté traitement du formulaire :
isSet($_POST['cadit']) => est vrai si au moins une case est cochée
foreach($_POST['cadit'] as $valeurCase) => te permet de boucler sur le tableau et de lire les valeurs des cases cochées

Pour savoir si une checkbox a été cochée, il suffit de vérifier si elle est définie (isSet($_POST['ma_case']), une case non cochée n'est pas envoyée via le formulaire). Tel que c'est fait, il te faut malheureusement tester toutes tes checkbox une par une. Il te faudrait donc relancer ta requête, récupérer les valeurs, reconstruire tes noms et tester chaque case.
La meilleure solution à mon sens serait de renommer tes cases pour qu'elles aient toutes le même nom (avec des [] pour que php récupère le résultat sous forme de tableau), et ainsi savoir aisément si au moins une case a été cochée, voire même laquelle en spécifiant sa valeur :)
Je te recommande donc d'écrire tes cases ainsi :
[php]echo '<input type="checkbox" name="cadit[]" value="' . $row[id_formation] . '">';[/php]
côté traitement du formulaire :
isSet($_POST['cadit']) => est vrai si au moins une case est cochée
foreach($_POST['cadit'] as $valeurCase) => te permet de boucler sur le tableau et de lire les valeurs des cases cochées :)