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
Configuration: Windows Vista Firefox 2.0.0.14
A voir également:
- Récupérer les données d'un checkbox
- Comment recuperer un message supprimé sur whatsapp - Guide
- Logiciel de récupération de données - Guide
- Récupérer données clé usb non reconnue - Guide
- Comment récupérer un compte facebook piraté - Guide
- Récupérer compte yahoo sans numéro de téléphone - 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);