Page 1 sur 1

Validation d'un formulaire contenant des checkbox

Posté : 19 févr. 2012, 15:01
par sharkysand
Bonjour,

Après envoi d'un formulaire, je souhaite vérifier si une de mes 3 checkbox est cochée.
Si aucune n'est cochée, je dois renvoyer un message d'erreur contenu dans le variable $error_sect

Voici mon code.

Création de la variable, qui est nulle avant l'envoi du formulaire (l'utilisateur ne reçoit pas de message d'erreur avant d'avoir envoyer son formulaire, normal) :
if ((!isset($_POST['agro'])) && (!isset($_POST['pharma'])) && (!isset($_POST['indus']))) {
	$error_sect = NULL;
}

Aprés envoi du formulaire, récupération des données envoyées dans les checkbox :
$agro = $_POST['agro'];
$pharma = $_POST['pharma'];
$indus = $_POST['indus'];
Si aucune des 3 checkbox n'est cochée, envoi d'un message d'erreur :
if (($agro == "") && ($pharma == "") && ($indus == "")) {	
$error_sect = "Merci de cocher une des trois cases";
}
Est-ce que quelqu'un voit où est l'erreur ?
Car ce code ne fonctionne pas...

Merci

Re: Validation d'un formulaire contenant des checkbox

Posté : 20 févr. 2012, 21:48
par sirakawa
En ajoutant
print_r($_POST); // ça éclairerait ta lanterne
$agro = $_POST['agro'];
$pharma = $_POST['pharma'];
$indus = $_POST['indus'];

Re: Validation d'un formulaire contenant des checkbox

Posté : 26 févr. 2012, 14:07
par sharkysand
ça ma éclairé que dalle.... lol

Re: Validation d'un formulaire contenant des checkbox

Posté : 26 févr. 2012, 15:58
par sharkysand
Bon ben ça fonctionne avec
if (($agro != "a") && ($pharma !="p") && ($indus !="i")){
	$error_sect = "merci de cocher une case";
}
J'ai toujours pas compris pourquoi la première syntaxe ne fonctionnait pas.... Mais bon

Re: Validation d'un formulaire contenant des checkbox

Posté : 10 mars 2012, 08:19
par ploupy
peut être comme ça...
if (($agro === NULL) && ($pharma === NULL) && ($indus === NULL)) {       
$error_sect = "Merci de cocher une des trois cases";
}

Re: Validation d'un formulaire contenant des checkbox

Posté : 12 mars 2012, 16:12
par Invité
Bonjour,

La solution que tu cherche c'est : if(empty($variable) && empty($variable2) && empty ($variable3) { $erreur = 'string' }

Re: Validation d'un formulaire contenant des checkbox

Posté : 12 mars 2012, 17:30
par AB
Bonjour,

La solution que tu cherche c'est : if(empty($variable) && empty($variable2) && empty ($variable3) { $erreur = 'string' }
+1

Explication :
Si le checkox n'est pas coché le post correspondant n'est pas envoyé, il n'est donc pas égal à rien ("") puisqu'il est indéfini. Une valeur non définie ne peut pas être comparéé directement avec une égalité et il faut commencer par vérifier son existence avec isset ou empty (comme ci-dessus).
Normalement un message "undefined index" aurait dû t'alerter.