Envoi de mail selon checkbox
Résolu
LaChaux78
Messages postés
583
Date d'inscription
Statut
Membre
Dernière intervention
-
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
LaChaux78 Messages postés 583 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Envoi de mail selon checkbox
- Programmer envoi mail gmail - Guide
- Publipostage mail - Accueil - Word
- Envoi mail cci - Guide
- Windows live mail - Télécharger - Mail
- Annuler envoi mail gmail - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, je pense que ta page d'envoi de mail ne traite pas correctement la réponse reçue. peux-tu partager ce qu'affiche
var_dump($_POST);?
Bonjour
Voici l'affichage avec var_dump
Merci
Voici l'affichage avec var_dump
array(7) { ["MAX_FILE_SIZE"]=> string(6) "500000" ["dmess"]=> string(10) "18/11/2017" ["tmess"]=> string(7) "fffffff" ["mess"]=> string(11) "fffffffffff" ["action"]=> string(7) "ajouter" ["submit"]=> string(18) "Envoyer le message" ["envoyer"]=> array(2) { [0]=> string(1) "2" [1]=> string(2) "44" } }
Merci
tu vois donc que $_POST['envoyer'] est ceci: array(2) { [0]=> string(1) "2" [1]=> string(2) "44" }
cela signifie que tu dois envoyer l'email aux personnes dont idpers est 2 ou 44.
moi je ferais une boucle foreach sur $_POST['envoyer'] , et, pour chaque idpers, je ferais une requête sql pour aller chercher l'email et je compléterais la liste des destinataires avec cet email.
cela signifie que tu dois envoyer l'email aux personnes dont idpers est 2 ou 44.
moi je ferais une boucle foreach sur $_POST['envoyer'] , et, pour chaque idpers, je ferais une requête sql pour aller chercher l'email et je compléterais la liste des destinataires avec cet email.
J'ai vraiment essayé d'arriver à quelque chose, j'ai peu de connaissance, tout ce que je sais c'est que je tourne en rond, j'ai fait cette boucle mais ecla me retourne toujours 1 checkbox même si j'en coche 2.
Pouvez-vous s'ils vous plait m'aider encore, peut-être me donner d'autres précisions.
Je vous en remercie.
Pouvez-vous s'ils vous plait m'aider encore, peut-être me donner d'autres précisions.
Je vous en remercie.
foreach($_POST['envoyer'] as $envoyer) { $envoyer = implode(';', $_POST['envoyer']); }
plutôt ainsi:
$sql = "SELECT nom,prenom,email FROM cdc_personnes,cdc_adherer WHERE cdc_personnes.idpers = ? AND cdc_adherer.idpers = ? AND annee='$aadh' AND idclas IN (2)"; $requete = $bdd->prepare($sql); foreach ( $_POST['envoyer'] as $idpers ) { $requete->execute(array($idpers, $idpers)); if ($donnees2 = $requete->fetch()) { // Adresse email des destinataires $destinataire = $donnees2->email; $prenom = $donnees2->prenom; ... } }
Bonjour,
Merci c'est gentil de ta part ça fonctionne très bien.
Je me pose juste une question pourquoi dans le tableau execute il y a deux fois "idpers"
Merci c'est gentil de ta part ça fonctionne très bien.
Je me pose juste une question pourquoi dans le tableau execute il y a deux fois "idpers"
le tableau utilisé dans execute sert à remplacer le(s) ? dans la requête sql.
la requête cherche des enregistrements dans deux tables, et, dans chaque table, elle cherche les enregistrements correspondant à l'idpers dont on s'occupe.
si le SQL avait été écrit comme suit, cela aurait aussi été correct, et le tableau execute aurait contenu une seule fois $idpers.
en y réfléchissant, cela ne sert sans doute à rien de vérifier annee et idclass au moment d'envoyer le mail, donc on pourrait faire simplement:
la requête cherche des enregistrements dans deux tables, et, dans chaque table, elle cherche les enregistrements correspondant à l'idpers dont on s'occupe.
si le SQL avait été écrit comme suit, cela aurait aussi été correct, et le tableau execute aurait contenu une seule fois $idpers.
SELECT nom,prenom,email FROM cdc_personnes,cdc_adherer WHERE cdc_personnes.idpers = cdc_adherer.idpers AND annee='$aadh' AND idclas IN (2) AND cdc_personnes.idpers = ?
en y réfléchissant, cela ne sert sans doute à rien de vérifier annee et idclass au moment d'envoyer le mail, donc on pourrait faire simplement:
$sql = "SELECT nom,prenom,email FROM cdc_personnes WHERE cdc_personnes.idpers = ? "; $requete = $bdd->prepare($sql); foreach ( $_POST['envoyer'] as $idpers ) { $requete->execute(array($idpers)); if ($donnees2 = $requete->fetch()) { // Adresse email des destinataires $destinataire = $donnees2->email; $prenom = $donnees2->prenom; ... } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question