Recuperation d'une checkbox [Résolu]

Signaler
Messages postés
52
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 mai 2007
-
Messages postés
52
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 mai 2007
-
bonjour,

Je souhaite récupere les information de plusieur checkbox d'une formulaire par PHP, voici comment je mi prend :

// les checkbox
Anglais
Italien

Allemand
Hongrois


// le code php

<?php

$pseudo = "$_POST[pseudo]";
$mail = "$_POST[mail]";
$motivation = "$_POST[motivation]";
$langues = "$_POST[langues]";


echo "$pseudo</$>, Votre candidature a bien etait reçu vous recevrez un reponce par mail et dans votre espace membres dans 24H.


Résumer :


$motivation



langues que vous maitriser :



$langues";
?>

Donc voila comme cité dans un post j'ai utiliser les tableau pour les nom des checkbox mais lorsque je les récupere par le code php ca m'affiche "Array"

En esperant que vous pourez m'aider, cordialement

15 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Tu as oublié la concaténation :
$resultat = $langues[$i] . "
";
va réaffecter le $langues courant à $résultat en effaçant la valeur précédente.
donc, comme te l'a écrit Tuc :
$resultat .= $langues[$i] . "
";

Par contre histoire de ne pas avoir un warning, tu vas devoir définir $resultat en tant que chaine vide, avant ta boucle :
$resultat = '';

Enfin, Tuc a fait une petite erreur (tss tss, Tuc...)...héhé, mais c'est de l'inattention : on ne met JAMAIS un count () dans la condition d'une boucle, sinon le count () est réévalué à chaque itération. Donc pour résumé :

$nbr = count ($_POST['langues']);
$resultat = '';
for ($i = 0; $i < $nbr; $i ++) {
$resultat .= $_POST['langues'][$i].'
';
}
echo $resultat;
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
Re,



print_r($_POST['langues']); // Euh ... regarde en rouge

print_r($langues); // Ou initialise tu $langues ?

print_r('$langues'); // C'est normal ... '...' = texte brute ^^
<hr>Si ma reponse te convient, merci de l'accepter !
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

tu stockes bien tes checkboxes dans un tableau, pas de problème. Par contre, on ne peut pas afficher le contenu d'un tableau avec un simple echo $tableau;
Il faut parcourir ton tableau et en afficher chaque enregistrement.
Un exemple parmi tant d'autres :
foreach ($langues as $valeur) {
echo $valeur, '
';
}
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
salut,

tu met tes valeurs dans un tableau donc il faut que tu les récupére de la meme maniére qu'un tableau

comme ceci :

for ($i = 0; $i < count($langues); $i++)
{
$resultat .= $langues[$i] . "
";
}


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
52
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 mai 2007

merci de vos reponce, j'ai donc utiliser ce code :

for ($i = 0; $i < count($langues); $i++)
{
$resultat = $langues[$i] . "
";

echo "$resultat";
}

en definissant la variable $langues = $_POST[langues]

mais ca ne m'affiche qu'un "A".
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ceci dit, avec ton code, ou tu affiches $resultat DANS ta boucle, si tu n'obtiens que A, c'est que ton tableau est mal rempli.
Tu devrais mettre ton formulaire plus en détail ici. Et faire attention aux contrôles à la soumission du formulaire.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
il faut mettre $langues = $_POST['langues'];

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
caramba, encore une fois trop tard

sénior malalam est trop rapide aujourd'hui





Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ben ma copine dort...lol. Alors je tue le temps :-)
Ca va toi ? Ta recherche de taf ? Ton nouveau pc ?
Moi je bosse à Nice... :-( trop loin d'Aix, mais très bien payé lol. Je continue quand meme à chercher à Aix.
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
le taf c'est toujours pareil, je cherche je cherche

mon nouveau pc est parfait par contre



c'est bien pour toi d'être revenu en france déjà... et d'être bien payer aussi lol

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
52
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 mai 2007

wesh un niçois comme ca on est deux :) sinon voici mon fomulaire entierement :

<form method=post target=_blank action="./traduction.php" >
Votre pseudo :

,
----
Votre mail :

,
----
Vos motivations :

<textarea name=motivation cols=20 rows=10></textarea>,
----
Quel langues pouvez vous traduire courament :

Anglais
Italien

Allemand
Hongrois ,
----
<center></center>

</form>
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
Ptite info en passant,: tu peu afficher ton tableau grace a la commande print_r($langues) qui devrait tafficher un truc du genre

Array[ [0] => "Anglais", [1] => "Francais", ... ] juste pour verifier si ton tableau est correct
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
lu,

Et si tu comprend pas grand chose au charabiat qu'il te donne (si tu as
beaucoup dans l'array) tulise la balise avant le
print_r(array());

<hr>Si ma reponse te convient, merci de l'accepter !
Messages postés
52
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 mai 2007

alor ca marche toujours pas ... je doit avoir la gigne, j'ai essayer la fonction de Guillemouze en mettant print_r($_POST[langues]); sa m'affiche ca :

Notice: Use of undefined constant langues - assumed 'langues' in c:\easyphp1-7\www\et\traduction.php on line 16
Array ( [0] => anglais )

----------------------------
print_r($langues); m'affiche :

array
----------------------------

----------------------------
print_r('$langues'); m'affiche :

$langues
----------------------------

enfin bon je croyer que poster ce topic dans le forum AU SECOUR etait un peu abusé mais la AU SECOURRRRRRRRRRREEEEEE !!!!!!!!!!

Merci d'avance
Messages postés
52
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
17 mai 2007

a merci grace aux deux reponce que j'ai accepte j'ai reussi a afficher le resultat de mes checkbox et j'en est appris un peu plus sur le php.

Merci encor et a la prochaine (j'espere pas devoir revenirmais bon ;) )