Récupérer un select multiple dans le corps d'un mail
Résolu
Greg
-
Greg -
Greg -
Bonjour à tous,
j'aurai besoin de votre aide. Sur mon site j'ai un formulaire HTML lié à un PHP qui m'envoie un mail. J'arrive à récupérer toutes les infos que je souhaite sans problème, sauf celles provenant d'une liste à choix multiple. Cela ne me retourne que le dernier choix coché.
Quelqu'un aurait une idée?
Merci de votre aide
extrait formulaire html
et donc extrait fichier php qui m'envoie un mail
j'aurai besoin de votre aide. Sur mon site j'ai un formulaire HTML lié à un PHP qui m'envoie un mail. J'arrive à récupérer toutes les infos que je souhaite sans problème, sauf celles provenant d'une liste à choix multiple. Cela ne me retourne que le dernier choix coché.
Quelqu'un aurait une idée?
Merci de votre aide
extrait formulaire html
<form method="post" id="form" action="monfichier.php"> ... <select name="maliste" multiple="multiple" size="4" id="maliste"> <option value="choix1">choix1</option> <option value="choix2">choix2</option> <option value="choix3">choix3</option> <option value="choix4">choix4</option> </select> ... </form>
et donc extrait fichier php qui m'envoie un mail
<?php $destinataire = '***@***'; $expediteur = $_POST['email']; $objet = $_POST['subject']; $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Content-type: text/html; charset=utf-8'."\n"; // l'en-tete Content-type pour le format HTML $headers .= 'From: '.$_POST['email'].'<'.$expediteur.'>'."\n"; // Expediteur $message = '<div style="width: 100%; text-align: left;"> une case de mon formualire : '.$_POST['caseformulaire'].' une autre case de mon formualire : '.$_POST['autrecaseformulaire'].' ICI JE VEUX QUE S'INSCRIVE LES CHOIX DE MA LISTE </div>'; $message= nl2br($message); if(mail($destinataire, $objet, $message, $headers)) { echo '<script languag="javascript" style="top:200px;">alert("Votre message a bien été envoyé ");</script>'; } else // Non envoyé { echo '<script languag="javascript">alert("Votre message n\'a pas pu être envoyé");</script>'; } ?>
EDIT : Ajout des balises de code.
A voir également:
- Récupérer un select multiple dans le corps d'un mail
- Comment recuperer un message supprimé sur whatsapp - Guide
- Comment récupérer un document dans le presse-papier samsung - Guide
- Comment récupérer un compte facebook piraté - Guide
- Comment télécharger un mail - Guide
- Windows live mail - Télécharger - Mail
6 réponses
Bonjour,
Commence par faire un print_r de ta variable $_POST pour voir à quoi elle ressemble lors tu selectionnes plusieurs valeurs.
Normalement.. tu devrais y voir un array..
De là, il ne te reste plus qu'à faire une boucle pour récupérer toutes les valeurs dans ton mail.
PS: à l'avenir, merci d'utiliser les balises de code pour poster du code sur le forum.
Explications ( à lire entièrement ! ) disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Commence par faire un print_r de ta variable $_POST pour voir à quoi elle ressemble lors tu selectionnes plusieurs valeurs.
print_r($_POST);
Normalement.. tu devrais y voir un array..
De là, il ne te reste plus qu'à faire une boucle pour récupérer toutes les valeurs dans ton mail.
$values = !empty($_POST['maliste']) ? $_POST['maliste'] : NULL; if($values ){ foreach ($values as $a){ echo $a; } }
PS: à l'avenir, merci d'utiliser les balises de code pour poster du code sur le forum.
Explications ( à lire entièrement ! ) disponibles ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Voilà, je suis débutant en PHP, l'erreur est surement là, mais je n'y arrive pas
print_r($_POST); $values = !empty($_POST['liste-choix-titre-pop-liste']) ? $_POST['liste-choix-titre-pop-liste'] : NULL; if($values ){ foreach ($values as $a){ echo $a; } } $destinataire = '***@***'; // Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses $expediteur = $_POST['email']; $objet = $_POST['subject']; $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Content-type: text/html; charset=utf-8'."\n"; // l'en-tete Content-type pour le format HTML $headers .= 'From: '.$_POST['email'].'<'.$expediteur.'>'."\n"; // Expediteur $message = '<div style="width: 100%; text-align: left;"> une case de mon formualire : '.$_POST['caseformulaire'].' une autre case de mon formualire : '.$_POST['autrecaseformulaire'].' ICI JE VEUX QUE S'INSCRIVE LES CHOIX DE MA LISTE </div>';
@yg_be c'est le nom de maliste (le vrai nom ^^) et mon dernierchoix c'est le dernier truc selectionné dans ma liste.
@jordane45 maintenant le print renvoi
Array([maliste] => Array ([0] => mon 1er choix [1] => mon deuxieme choix))
mais le mail que je reçoit ne mention que le deuxième choix
@jordane45 maintenant le print renvoi
Array([maliste] => Array ([0] => mon 1er choix [1] => mon deuxieme choix))
mais le mail que je reçoit ne mention que le deuxième choix
Et bien donc,
Il faut boucler dessus pour afficher les infos dans le mail
Il faut boucler dessus pour afficher les infos dans le mail
$values = !empty($_POST['liste-choix-titre-pop-liste']) ? $_POST['liste-choix-titre-pop-liste'] : NULL; $destinataire = '***@***'; // Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses $expediteur = $_POST['email']; $objet = $_POST['subject']; $headers = 'MIME-Version: 1.0' . "\n"; // Version MIME $headers .= 'Content-type: text/html; charset=utf-8'."\n"; // l'en-tete Content-type pour le format HTML $headers .= 'From: '.$_POST['email'].'<'.$expediteur.'>'."\n"; // Expediteur $message = '<div style="width: 100%; text-align: left;"> une case de mon formualire : '.$_POST['caseformulaire'].' une autre case de mon formualire : '.$_POST['autrecaseformulaire']; if($values ){ foreach ($values as $a){ $message .= $a; } } $message .=' </div>';
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Malheureusement, je dois faire un truc de mal parce que ça ne me change rien.
Que dois-je mettre dans cette partie de code pour que cela fonctionne?
Merci
PS: désolé de pas avoir utiliser les balises
et on verra comment t'aider à le corriger.