Récupérer les données d'un checkbox
Résolu
amandine
-
amandine -
amandine -
Bonjour,
J'ai créer un formulaire avec des checkbox et je voudrais récupérer les données dans un fichier texte.
Voici mon formulaire :
et dans articles.php j'ai fait quelques essai, mais j'arrive à récupérer qu'une seule valeur, même si je coche plusieurs cases.
Merci d'avance
J'ai créer un formulaire avec des checkbox et je voudrais récupérer les données dans un fichier texte.
Voici mon formulaire :
<form method="post" name="formulaire" action="articles.php"> <table height="300px"> <tr> <td width="50" align="center"><INPUT type="checkbox" NAME="article[]" VALUE="corbeille_fruit"></td> <td>Corbeille de fruit<br>Quantité : 1<br>Origine : diverse</td> </tr> <tr> <td align="center"><INPUT type="checkbox" NAME="article[]" VALUE="corbeille_fruit_secs"></td> <td>Corbeille de fruit secs<br>Quantité : 1<br>Origine : diverse</td> </tr> <tr> <td align="center"><INPUT type="checkbox" NAME="article[]" VALUE="corbeille_fruit_sechés"></td> <td>Corbeille de fruit séchés<br>Quantité : 1<br>Origine : diverse</td> </tr> <tr> <td><input type="submit" value="Envoyer"></td> <td><input type="reset" value="Annuler"></td> </tr> </table> <form>
et dans articles.php j'ai fait quelques essai, mais j'arrive à récupérer qu'une seule valeur, même si je coche plusieurs cases.
<? $inF = fopen('articles.txt', 'a'); $article=$_POST['article']; for ($i=0; isset($article[$i]); $i++){// On teste si plusieurs valeurs sont sélectionnées $article= $article[$i]; echo $article. '<br>'; } fputs($inF, "$article|"); fclose($inF); ?>
Merci d'avance
A voir également:
- Récupérer les données d'un checkbox
- Fuite données maif - Guide
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment récupérer un compte facebook piraté - Guide
- Supprimer les données de navigation - Guide
- Récupérer mon compte facebook désactivé - Guide
3 réponses
Bonsoir,
Le problème vient de ta boucle for. En effet, une boucle for s'écrit de cette façon : for (début, condition de fin, pas). Or ta condition de fin est "isset($article[$i])".
La fonction isset permet de savoir si une variable est déclarée ou pas. Elle renvoie donc 0 ou 1, vrai ou faux.
Dans ton cas tu dois utiliser "count($article)" qui te renverra le nombre de cases de ton tableau $article et ne s'arrêtera donc pas à la première occurence.
Ton code devient donc :
Le problème vient de ta boucle for. En effet, une boucle for s'écrit de cette façon : for (début, condition de fin, pas). Or ta condition de fin est "isset($article[$i])".
La fonction isset permet de savoir si une variable est déclarée ou pas. Elle renvoie donc 0 ou 1, vrai ou faux.
Dans ton cas tu dois utiliser "count($article)" qui te renverra le nombre de cases de ton tableau $article et ne s'arrêtera donc pas à la première occurence.
Ton code devient donc :
for ($i=0; $i<count($article); $i++){
Ayant vu ce problème, je n'ai pas cherché plus loin, mais je viens de m'apercevoir d'un second problème qui est que dans ta boucle for tu fais $article= $article[$i]; ce qui revient à écraser le tableau par le contenu de sa première case. C'est génant. Ceci devrait mieux fonctionner :
for ($i=0; $i<count($article); $i++){ $unarticle= $article[$i]; echo $unarticle. '<br>'; fputs($inF, "$unarticle|"); } fclose($inF);