Recuperer valeurs de checkbox avec une boucle [Résolu]

Signaler
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
-
Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008
-
Re-bonjour,



Voila je cherche à récupérer les valeurs de mes checkbox cochées dans
un formulaire, le problème c'est que mon formulaire est dynamique, il
peut y avoir un, zero ou bien 200 checkbox...

Alors pour les récupérer voici ce que j'ai fais :



<?php

$compt=$_POST['compteur']; /*un compteur qui contient le nombre
de checkbox affichés dans le formuliare pour faire ma boucle */





$i=0;

$checked=''; /*ça c'est la variable (vide au
départ) qui récupère la liste des checkbox cochés uniquement*/

while($i<$compt)

{

if(isset($_POST['check'.$i.''])) /*mes checkbox ont pour
valeur check0,check1... dans le formulaire précedent (ça, ça fonctionne
nikel)

{

$checked = $checked . $_POST['check'.$i.''].',';

$i++;

}



}

echo $checked

?>



voila, ça marche seulement quand tout est coché, sinon ça me fais une
boucle infini, et je sais pas comment lui dire de reprendre la boucle
si la condition est pas vérifiée...



J'espère être clair, petite précision le but de $checked est d'etre
ensuite concatené à une requete SQL d'où la forme
'valeur_de_check_coché_un','valeur_de_check_coché_deux',...



Merci d'avance

3 réponses

Messages postés
33
Date d'inscription
vendredi 14 avril 2006
Statut
Membre
Dernière intervention
24 juin 2008

Merci à tous les deux, ce que j'ai fait fonctionne en fait, j'ai trouvé
la cause de ma boucle infini , encore une faute à la ***, je m'étais
juste trompé de ligne pour le i++, je l'ai décalée pour qu'elle se
trouve dans la boucle while et pas dans la condition "if", et ça
fonctionne très bien, voici ce qu'il fallait faire dans la boucle :



while($i<$compt)

{

if(isset($_POST['check'.$i.'']))

{$checked = $checked . $_POST['check'.$i.''].',';

}

$i++

}
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
4
salut
dans le form

dans le traitement
if(isset($_POST['check']) && is_array($_POST['check']) )
{
$check=$_POST['check'];

for($i=0;$i<count($check[]);$i++)
{
echo $check[$i];
}
}
a tester, je me trompe peut etre...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,

tu peux aussi faire ça pour parcourir le tableau :

if(isset($_POST['check']) && is_array($_POST['check']) )
{
foreach($_POST['check'] AS $valeur)
{
echo $valeur;
}
}

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>