Souci avec formulaire, renvoi ARRAY
Résolu/Fermé
cmoiahmed
Messages postés
14
Date d'inscription
lundi 20 mai 2013
Statut
Membre
Dernière intervention
30 mai 2015
-
20 mai 2013 à 08:21
cmoiahmed Messages postés 14 Date d'inscription lundi 20 mai 2013 Statut Membre Dernière intervention 30 mai 2015 - 28 mai 2013 à 20:32
cmoiahmed Messages postés 14 Date d'inscription lundi 20 mai 2013 Statut Membre Dernière intervention 30 mai 2015 - 28 mai 2013 à 20:32
A voir également:
- Souci avec formulaire, renvoi ARRAY
- Formulaire de réclamation facebook - Guide
- Formulaire de contact le bon coin introuvable ✓ - Forum Réseaux sociaux
- Récupérer compte outlook sans formulaire - Forum Hotmail / Outlook.com
- Civilité sur un formulaire - Forum VB / VBA
- Désactiver renvoi d'appel ooredoo - Forum Mobile
4 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
Modifié par Alain_42 le 27/05/2013 à 18:39
Modifié par Alain_42 le 27/05/2013 à 18:39
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';
}
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
20 mai 2013 à 09:38
20 mai 2013 à 09:38
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+
cmoiahmed
Messages postés
14
Date d'inscription
lundi 20 mai 2013
Statut
Membre
Dernière intervention
30 mai 2015
Modifié par cmoiahmed le 20/05/2013 à 19:13
Modifié par cmoiahmed le 20/05/2013 à 19:13
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
cmoiahmed
Messages postés
14
Date d'inscription
lundi 20 mai 2013
Statut
Membre
Dernière intervention
30 mai 2015
20 mai 2013 à 22:52
20 mai 2013 à 22:52
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 />
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
21 mai 2013 à 08:36
21 mai 2013 à 08:36
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+
cmoiahmed
Messages postés
14
Date d'inscription
lundi 20 mai 2013
Statut
Membre
Dernière intervention
30 mai 2015
21 mai 2013 à 14:08
21 mai 2013 à 14:08
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
cmoiahmed
Messages postés
14
Date d'inscription
lundi 20 mai 2013
Statut
Membre
Dernière intervention
30 mai 2015
Modifié par cmoiahmed le 21/05/2013 à 23:52
Modifié par cmoiahmed le 21/05/2013 à 23:52
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....
dcanl
Messages postés
3004
Date d'inscription
mercredi 7 septembre 2005
Statut
Contributeur
Dernière intervention
3 juin 2013
470
27 mai 2013 à 16:23
27 mai 2013 à 16:23
Salut.
Ravi que tu aies pu trouver la solution pour ton test.
Pour que cela valide le choix lorsque tu cliques sur le label, il faut que tu utilises la balise HTML label justement.
Regarde ici : http://www.editeurjavascript.com/trucs/16,utilisation_de_la_balise_dans_un_formulaire.php
A+
Ravi que tu aies pu trouver la solution pour ton test.
Pour que cela valide le choix lorsque tu cliques sur le label, il faut que tu utilises la balise HTML label justement.
Regarde ici : http://www.editeurjavascript.com/trucs/16,utilisation_de_la_balise_dans_un_formulaire.php
A+
cmoiahmed
Messages postés
14
Date d'inscription
lundi 20 mai 2013
Statut
Membre
Dernière intervention
30 mai 2015
28 mai 2013 à 20:32
28 mai 2013 à 20:32
merci, mais j'avais déjà trouvé la solution pour les
radio(choix unique) et c'est bien ce que j'ai fait
27 mai 2013 à 20:21
Ensuite je rajouterai un foreach($_POST['materiaux'] as $m) pour parcourir les checkbox cochées
28 mai 2013 à 11:29