Souci avec formulaire, renvoi ARRAY
Résolu
cmoiahmed
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
cmoiahmed Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
cmoiahmed Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire avec des checkbox, lorsque je valide pour l'envoyer par mail, il m'affiche "ARRAY" comme récupération de valeurs cochées.
J'ai trouvé une solution pour qu'il me renvoi les données en les passant dans implode mais maintenant il m'affiche une erreur lorsque je valide le formulaire
Voila le code :
le message dans une div :
Merci de votre aide....
J'ai un formulaire avec des checkbox, lorsque je valide pour l'envoyer par mail, il m'affiche "ARRAY" comme récupération de valeurs cochées.
J'ai trouvé une solution pour qu'il me renvoi les données en les passant dans implode mais maintenant il m'affiche une erreur lorsque je valide le formulaire
Warning: implode(): Invalid arguments passed in.....
Voila le code :
if(($_POST['materiaux']) === ' ') { // si aucune cases cochées $materiauxErreur = '<b>type de matériaux</b> est un choix requis.'; $siErreur = true; // pour afficher ailleurs le message dans une div } else { // la variable "article" récupère la valeur des cases cochés article = $_POST['materiaux']; // la variable "text " permet d'afficher les données dans le mail $text = implode(",", $article); }
le message dans une div :
<?php if( isset($constructionErreur) || isset($materiauxErreur) ){ ?> <div class="bloc_erreur"> <span class="Erreur"><?php echo $constructionErreur ?></span> <br /> <span class="Erreur"><?php echo $materiauxErreur ?></span> <br /> </div> <?php } ?>
Merci de votre aide....
A voir également:
- Souci avec formulaire, renvoi ARRAY
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Renvoi ooredoo - Forum Samsung
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
4 réponses
salut,
le fait de mettre dans l'input type ckecbox name="materiaux[] renvoie $_POST['materiaux'] sous forme d'un array lorsque l'on poste le formulaire, mais si rien n'est coché, l'array $_POST['materiaux'] n'existe pas donc tu as une erreur sur l'argument inexistant de la fct implode
il faut donc que tu fasses
if(isset($_POST['materiaux'])){
echo implode(.....
}else{
echo 'aucune case cochée';
}
le fait de mettre dans l'input type ckecbox name="materiaux[] renvoie $_POST['materiaux'] sous forme d'un array lorsque l'on poste le formulaire, mais si rien n'est coché, l'array $_POST['materiaux'] n'existe pas donc tu as une erreur sur l'argument inexistant de la fct implode
il faut donc que tu fasses
if(isset($_POST['materiaux'])){
echo implode(.....
}else{
echo 'aucune case cochée';
}
Bonjour.
Ta déclaration de variable est incorrecte : tu as oublié le "$" devant "article" dans ton else.
Essaie déjà comme ça ! :-)
A+
Ta déclaration de variable est incorrecte : tu as oublié le "$" devant "article" dans ton else.
Essaie déjà comme ça ! :-)
A+
oups mal recopier, il y a bien "$" devant "article" dans mon else, l'erreur ne vient pas de la.
j'oubli de préciser que l'erreur se fait lorsque le formulaire est valider sans avoir rempli les champs et cocher les cases.
j'ai un beau message :
mais lorsque le formulaire est compléter correctement je reçois toutes les données
j'oubli de préciser que l'erreur se fait lorsque le formulaire est valider sans avoir rempli les champs et cocher les cases.
j'ai un beau message :
Warning: implode(): Invalid arguments passed in.....
mais lorsque le formulaire est compléter correctement je reçois toutes les données
j'ai simplifié le code :
je récupère bien les données mais quand les checkbox ne sont pas cochés et que je valide le formulaire, je reçois toujours l'erreur
et le message d'erreur est vide, j'ai regardé dans firebug et je vois ceci:
else { // la variable "text " permet d'afficher les données dans le mail $text = implode(",", $_POST['materiaux']); }
je récupère bien les données mais quand les checkbox ne sont pas cochés et que je valide le formulaire, je reçois toujours l'erreur
Warning: implode(): Invalid arguments passed in.....
et le message d'erreur est vide, j'ai regardé dans firebug et je vois ceci:
<span class="Erreur"> </span> <br />
Salut.
Que contient ta variable $_POST['materiaux'] dans ce cas ?
Tu mets une chaîne espace ' ', mais est-ce bien cela ?
Le problème ici, c'est ton test dans le if. Car d'après ce que je comprends, quel que soit le cas, tu passe dans le else (formulaire rempli ou pas), ton test est donc à revoir.
Si tu n'y arrives pas, je pourrai regarder de mon côté pour reproduire le cas.
A+
Que contient ta variable $_POST['materiaux'] dans ce cas ?
Tu mets une chaîne espace ' ', mais est-ce bien cela ?
Le problème ici, c'est ton test dans le if. Car d'après ce que je comprends, quel que soit le cas, tu passe dans le else (formulaire rempli ou pas), ton test est donc à revoir.
Si tu n'y arrives pas, je pourrai regarder de mon côté pour reproduire le cas.
A+
la variable
Pour ce qui est de la chaîne espace ' ', je ne vois la voit pas, si c'est dans
Par contre si c'st pour la vérification, je ne sais pas quoi mettre
Je tourne en rond, je récupère bien les données mais j'ai toujours ce message d'erreur
Et je remarque que si je rajoute
je reçois toujours les données et j'ai bien mon message d'erreur qui s'affiche correctement si la case n'est pas cochée mais cette fois j'ai un nouveau message d'erreur
$_POST['materiaux']contient un tableau si je ne me trompe pas
<li> <input type="checkbox"id="materiaux" name="materiaux[]" class="element checkbox" value="Traditionnel (parpaing)" /> <label class="choice" for="materiaux">Brique</label> </li>
Pour ce qui est de la chaîne espace ' ', je ne vois la voit pas, si c'est dans
implode, c'est une virgule pour séparer les données récupérer :
$text = implode(",", $_POST['materiaux']);
Par contre si c'st pour la vérification, je ne sais pas quoi mettre
if(($_POST['materiaux']) === ' ') {
Je tourne en rond, je récupère bien les données mais j'ai toujours ce message d'erreur
Warning: implode(): Invalid arguments passed in.....
Et je remarque que si je rajoute
trim
if (trim($_POST['materiaux']) === ' ' ) {
je reçois toujours les données et j'ai bien mon message d'erreur qui s'affiche correctement si la case n'est pas cochée mais cette fois j'ai un nouveau message d'erreur
trim() expects parameter 1 to be string, array given
bon il suffisait de mettre comment paramètre pour vérifier si la case est cochée:
Dernier souci pour ce qui est des
comment faire pour que lorsque on clique sur le label, cela valide le choix.
car j'ai toujours le premiers choix qui se rempli
je sais pas si je suis clair....
false
if ($_POST['materiaux'] == false) {
Dernier souci pour ce qui est des
radio(choix unique)
comment faire pour que lorsque on clique sur le label, cela valide le choix.
car j'ai toujours le premiers choix qui se rempli
je sais pas si je suis clair....
Ensuite je rajouterai un foreach($_POST['materiaux'] as $m) pour parcourir les checkbox cochées