Vérifier si les champs sont bien rempli (tableau)

Eléphant du PHP | 259 Messages

24 juil. 2007, 15:16

Bonjour,

J'aimerais vérifié si les champs sont correctement rempli. j'affiche plusieurs questions avec plusieurs choix de réponses possible, et j'affiche aussi une question alétoire, voici mes champs :
 echo'<input type="radio" name="question['.$id_question.']" value="'.$id_reponse.'">'.$nom_rep.'';                            
	   			
Ensuite je récupére les réponses choisi avec un foreach :
if (is_array($_POST['question']))   
{
foreach ($_POST['question'] as $Cle1=>$Rep1) 
{ 
if (empty($Rep1))
{
//affiche message d'erreur
}	  	
}	 
}
	
	
	
Quand il n'y a qu'une question ça marche, par contre s'il y a plusieurs questions et que je répond qu'a la 1ere il ne met pas le message d'erreur ! Il ne vérifie pas toute les questions en fait !!

Pourtant avec le foreach il devrait tout parcourir !! Comment faire pour vérifier si tous les champs (lorsqu'il y a plsuieurs questions) sont bien rempli ?

Mammouth du PHP | 536 Messages

24 juil. 2007, 15:23

t'as essayé avec une boucle for ?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

ViPHP
ViPHP | 928 Messages

24 juil. 2007, 15:26

Et si tu essayais de débuguer ? Ce genre de problème est réglable par soit même :
- affiche le contenu de $_POST['question'] avec print_r()
- affiche $Cle1 et $Rep1 dans ta boucle

et regarde où ça bug.

Eléphant du PHP | 259 Messages

24 juil. 2007, 15:56

quand j'affiche $clé1 et $rep1 ça me met bien les reponses que j'ai mise avec les id question, par contre si je répond qu'a 1 question sur les 2, il m'affiche celle ou j'ai répondu (id question et id réponse) mais il n'affiche pas l'id de la 2eme question.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 juil. 2007, 16:00

Un bouton radio n'est envoyé que si l'une de ses options a été cohée, autrement la variable n'est pas définie.

Ainsi isSet($_POST['question'][$id_question]) te permettra de savoir si une réponse a été choisie pour la question $id_question. Et si tel est le cas, la valeur choisie sera disponible dans $_POST['question'][$id_question] :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 536 Messages

24 juil. 2007, 16:05

a la limite, tu pourrais faire un petit javascript pour vérifier que tous tes champs radio ont bien été cliqué.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 259 Messages

24 juil. 2007, 16:22

Merci pour la précision sur les boutons radio :wink:
Maintenant ça marche

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 juil. 2007, 17:01

a la limite, tu pourrais faire un petit javascript pour vérifier que tous tes champs radio ont bien été cliqué.
Attention, selon moi, le javascript ne devrait jamais être utilisé uniquement pour une question de confort. C'est à dire réaliser un pré-contrôle sans rechargement de page, mais il ne devrait jamais être utilisé comme contrôle de validité. Il est extremement facile de contourner une vérification JS ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer