Probleme de recuparation de tableau ...

Résolu
twixster Messages postés 45 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 29 novembre 2007 - 16 févr. 2006 à 16:41
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 16 févr. 2006 à 17:23
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2006 à 17: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';
}
}
3
twixster Messages postés 45 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 29 novembre 2007
16 févr. 2006 à 16:50
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 "";
}
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2006 à 16:51
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.
0
twixster Messages postés 45 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 29 novembre 2007
16 févr. 2006 à 16:56
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 '';
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2006 à 17:04
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
0
twixster Messages postés 45 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 29 novembre 2007
16 févr. 2006 à 17:16
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 ...
0
Rejoignez-nous