Probleme de recuparation de tableau ... [Résolu]

Signaler
Messages postés
45
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
29 novembre 2007
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Bonjour, voila,

je met des valeur dans un tableau, mais quand je veux recupere ces valeurs apres un submit, je ne sais avoir que celle = à 1, hors, si au departs, j'ai 1,0,1,0,1,1,0 et que apres j'obtient 1,1,1,1 j'ai une grosse difference dans mon affichage.

Car tout les 1 corresponde a une checkbox cohe, les zero a une non coché ..

quelqu'un pourrait il m'aider?

pour le moment je les recupere comme ceci :
foreach($_POST['liste'] as $valeur)
{

$ligne.= $valeur.",";


}

6 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Mais puis que sais combien tu as de checkboxes (la valeur max de $clef), et que tu as ton tableau...
$chaine = '';
for ($i = 0; $i <= $clefMax; $i++) {
if (isset ($liste[$i])) {
$chaine .= '1';
} else {
$chaine .= '0';
}
}
Messages postés
45
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
29 novembre 2007

et voici comment je l'affiche :

$listeCoche='';



$tab = explode(',',$ligne);
if(!empty($resolution))
{
$resolution=trim($resolution);
$probleme=split("\n",$resolution);
$max=count($probleme);
$cpt=0;
?>
">
<?
foreach($tab as $clef => $valeur) {


if ($clef==0){

if($valeur==1)
{
$checked = 'checked';
$lignee=1;


echo "$probleme[$clef]";
echo '';
echo "
";
$listeCoche=$lignee;


}
else {
$checked = '';
$lignee=0;



echo "$probleme[$clef]";
echo '';
echo "
";
$listeCoche=$lignee;
}





}
elseif($clef>0)
{
$listeCoche.=',';

if($valeur==1)
{
$checked = 'checked';
$lignee=1;


echo "$probleme[$clef]";
echo '';
echo "
";
$listeCoche.=$lignee;


}
else {
$checked = '';
$lignee=0;



echo "$probleme[$clef]";
echo '';
echo "
";
$listeCoche.=$lignee;
}



}





}
echo $listeCoche;
echo "";
}
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

Bah, tu peux, par exemple, au lieu d'utiliser simplement name="liste[]" dans tes checkboxes, utiliser un compteur :
liste[$i]

Ainsi, la checkbox 1 aura bien comme index 0, la 2ème 1 etc...
ensuite, tu regardes les index présents dans ton tableau.
Si un index est présent, sa valeur est 1.
Si un index n'est pas présent dans la suite de numéros logiques, c'est que cette checkbox n'a pas été cochée, et tu mets 0.
Messages postés
45
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
29 novembre 2007

Bah, tu peux, par exemple, au lieu d'utiliser simplement name="liste[]" dans tes checkboxes, utiliser un compteur :
liste[$i]

mais je le fais deja ici :

echo '';
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Eh ben alors, où est ton problème ?

si tu as 4 checkboxes, le tableau "total" irait de 0 à 3. Et si tu as :
$liste[0] = 1
$liste[2] = 1

uniquement, ça veut dire que
$liste[1] et $liste[3] (qui n'existe pas, parce que checkboxes non cochées ) sont à 0. Donc que tu as une chaîne du style :
1010
Messages postés
45
Date d'inscription
lundi 6 février 2006
Statut
Membre
Dernière intervention
29 novembre 2007

oui, je suis d'accord, mais j'essaye de stocke moi cette valeur, et comme les zero ne s'affiche pas si je devais avoir 1,0,1,0 j'aurai 1,1 et donc plus utilisable car faux.

je voudrai trouve un moyen de voir quand ces des zero, pour leur mettre un zero. et je vois pas comment ...