Check box HTML / PHP

Résolu/Fermé
linkje Messages postés 124 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 1 juillet 2014 - 12 juil. 2012 à 19:57
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 - 13 juil. 2012 à 11:56
Bonjour,

J'ai fait un formulaire en HTML qui se crée grace à une base de donnée mysql.

<input type="checkbox" name="choixModule_<?php echo $i;?>" value="<?php echo $row['idArt'];?>" >


$row['idArt']; correspond à l'article que je séléctionne. Je ne peux donc pas le changer. (J'anticipe la réponse parce que j'ai deja vu cette réponse sur les forums.)

Dans ce formulaire, j'ai aussi rajouter un compteur pour savoir combien d'entrée j'affiche afin de faire une boucle correcte.

<input type="hidden" name="nbEntree" value="<?php echo $i;?>" />


Voici donc la page qui récupère les informations du formulaire. (Jusque la aucun souci, je présentai la démarche.)



for ($i=0;$i<=$_POST['nbEntree'];$i++ ){
	   if ($_POST['choixModule_'.$i])
	   {	
	   		var_dump($_POST['choixModule_'.$i]);
			echo $_POST['choixModule_'.$i];
			$maChaine .= '/'.$_POST['choixModule'.$i]; // Correspond à l'id de l'article coché (modules) séparé par des slash.
	   }
    }

	$_SESSION['choixModule'] = $maChaine; // Enregistrement des modules choisis.
	echo $_SESSION['choixModule'];


Conclusion,

- la boucle fonctionne correctement et le nombre de fois qu'il faut.
- le var_dump m'affiche rien du tout
- l'echo du choixModule non plus
- $maChaine affiche que les slash. je me retrouve donc avec le nombre de slash correspondant au nombre de tour dans la boucle.


Donc voila, je ne trouve pas d'ou vient le problème, je suppose tout de meme que c'est la récuperation qui ne marche pas.

Merci de prendre du temps pour moi et de m'expliquer d'ou provient l'erreur.




A voir également:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 juil. 2012 à 21:46
<?php

for ($i=0;$i<=$_POST['nbEntree'];$i++ ){ //déja la tu avait une erreur i allait de 0 à nbEntrée donc 1 fois de trop 0 à 5 ça fait 6 pas il aurrait fallut mettre $i<$_POST['nbEntree']
	   if ($_POST['choixModule_'.$i])
	   {	
	   		var_dump($_POST['choixModule_'.$i]);
			echo $_POST['choixModule_'.$i];
			$maChaine .= '/'.$_POST['choixModule'.$i]; // Correspond à l'id de l'article coché (modules) séparé par des slash.
	   }
    }

	$_SESSION['choixModule'] = $maChaine; // Enregistrement des modules choisis.
	echo $_SESSION['choixModule'];
?>

une autre solution:
<input type="checkbox" name="choixModule[]" value="<?php echo $row['idArt'];?>" >
le name avec les [] permet d'avoir les checkbox sous forme d'array, plus besoin de nbEntree en Hidden

<?php
$maChaine=""; //pour concatener par .=  il vaut mieux l'initialiser à vide avant
for($i=0; $i<sizeof($_POST['choixModule']);$i++){
	//echo $_POST['choixModule'][$i];
	$maChaine .= '/'.$_POST['choixModule'][$i]; // Correspond à l'id de l'article coché (modules) séparé par des slash.
}
$_SESSION['choixModule'] = $maChaine; // Enregistrement des modules choisis.
	echo $_SESSION['choixModule'];
?>
2
linkje Messages postés 124 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 1 juillet 2014 1
12 juil. 2012 à 23:29
En effet, $maChaine est initialisé avant mais je voulais pas trop blindé mon explication :p

j'ai utilisé la deuxième méthode du coup, merci beaucoup du temps que tu as pris pour me répondre.

Passe une bonne soirée et Hop un petit +1 parce que ca fait plaisir :)
0
brute Messages postés 112 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 19 juillet 2012 13
13 juil. 2012 à 11:56
met résolu stp ;)
0