Selection checkbox dans un tableau

Résolu/Fermé
mali_67 Messages postés 77 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 25 avril 2008 - 3 mars 2008 à 09:22
mali_67 Messages postés 77 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 25 avril 2008 - 3 mars 2008 à 11:34
Bonjour, j'ai créer un formulaire composer d'un tableau, un bouton, et une checkbox sur chaque ligne du tableau.
Mon probleme et le suivant, si je selectionne une checkbox et que j'appui sur valider tout fonctionne comme prevu, mais si je selectionne plusieur checkbox mon affichage fonctionne mal(il affiche mes resultat par rapport au nombre de box cocher ex si je cocher 3 box il affiche 3 fois le resultat)
si vous voulez plus de renseignement sur mon code, demander moi
$Tab['NumLien'] = le numero id de la colonne
$Tab['LibelleLienSprice'] = une colonne de mon tableau(celle qui s'affiche plusieur fois si plusieur checkbox sont cocher

<?php     
if (isset($_POST['Verification'])) //mon bouton verification
{
$verif = $_POST['Verif'];  //mes checkbox
	for($i=0;$i<sizeof($verif);$i++) 
	{
	 if ($verif[$i]==$Tab['NumLien'])
	 {
	  $Test = $Tab['LibelleLienSprice'];
if (!$fp = @fopen(''.$Test.'',"r"))   //l
{
echo '<span style="color:red;">'.$Test.'</span>';
$bool='false';
}
else 
{
echo '<span style="color:green;">'.$Test.'</span>';
$bool='true';
}
	 }
	 else
{
 echo $Tab['LibelleLienSprice'];
}
	 }
}
else
{
 echo $Tab['LibelleLienSprice'];
}
?>

5 réponses

Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
3 mars 2008 à 10:37
C'est normal. Le problème vient de là :
if ($verif[$i]==$Tab['NumLien'])
{
	...
}
else
{
	echo $Tab['LibelleLienSprice'];
} 

Le nombre d'itérations de ta boucle correspond au nombre de cases cochées (puisque tu utilises sizeof). A chaque itération, soit la condition est remplie (if ($verif[$i]==$Tab['NumLien'])) et tu affiches alors $Tab['LibelleLienSprice'] en vert ou rouge (la condition imbriquée), soit elle n'est pas remplie mais tu l'affiches là aussi, en noir cette fois (ou la couleur par défaut de ton site).
Résultat, ta variable est affichée à chaque fois d'une couleur ou d'une autre.

Plutôt qu'une boucle, utilise la fonction in_array.

<?php   
	if (in_array($Tab['NumLien']), $_POST['Verif'])
	{
		$Test = $Tab['LibelleLienSprice'];
		if (!$fp = @fopen(''.$Test.'',"r"))
		{
			echo '<span style="color:red;">'.$Test.'</span>';
			$bool='false';
		}
		else 
		{
			echo '<span style="color:green;">'.$Test.'</span>';
			$bool='true';
		}
	}
	else
	{
		echo $Tab['LibelleLienSprice'];
	}
?>
0
mali_67 Messages postés 77 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 25 avril 2008 4
3 mars 2008 à 11:03
Merci enax par contre
j'ai un message d'erreur le voici
Parse error: syntax error, unexpected ',' in C:\wamp\www\Referencement\Accueil.php on line 280
<?php     
if (isset($_POST['Verification']) && $_POST['Verif']!= "")
{
if (in_array($Tab['NumLien']), $_POST['Verif'])  //ligne 280
	 {
	  $Test = $Tab['LibelleLienSprice'];
if (!$fp = @fopen(''.$Test.'',"r"))   //l
{
echo '<span style="color:red;">'.$Test.'</span>';
$bool='false';
}
else 
{
echo '<span style="color:green;">'.$Test.'</span>';
$bool='true';
}
	 }  	 
}
else
{
 echo $Tab['LibelleLienSprice'];
 $message="Vous devez cocher une case!";
}
?>
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
3 mars 2008 à 11:09
Une petite erreur dans les parenthèses :

if (in_array($Tab['NumLien'], $_POST['Verif']))
0
mali_67 Messages postés 77 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 25 avril 2008 4
3 mars 2008 à 11:13
j'ai pas reussi a voir ou
0

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

Posez votre question
mali_67 Messages postés 77 Date d'inscription jeudi 14 février 2008 Statut Membre Dernière intervention 25 avril 2008 4
3 mars 2008 à 11:34
opk merci enax ta fonction in array parfait grace a toit mon probleme est resolue
0