Envoi de mail selon checkbox
Résolu/Fermé
LaChaux78
Messages postés
581
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
21 novembre 2024
-
17 nov. 2017 à 22:42
LaChaux78 Messages postés 581 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 21 novembre 2024 - 18 nov. 2017 à 20:44
LaChaux78 Messages postés 581 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 21 novembre 2024 - 18 nov. 2017 à 20:44
A voir également:
- Envoi de mail selon checkbox
- Yahoo mail - Accueil - Mail
- Publipostage mail - Accueil - Word
- Programmer envoi mail gmail - Guide
- Annuler envoi mail gmail - Guide
- Envoi mail cci - Guide
5 réponses
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
Ambassadeur
1 557
18 nov. 2017 à 09:34
18 nov. 2017 à 09:34
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);?
LaChaux78
Messages postés
581
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
21 novembre 2024
32
18 nov. 2017 à 12:02
18 nov. 2017 à 12:02
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
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
18 nov. 2017 à 12:28
18 nov. 2017 à 12:28
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.
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
18 nov. 2017 à 18:54
18 nov. 2017 à 18:54
en voyant le contenu de $_POST, je me dis que ton formulaire cause l'envoi d'informations inutiles. tu voudras peut-être simplifier cela.
LaChaux78
Messages postés
581
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
21 novembre 2024
32
18 nov. 2017 à 17:01
18 nov. 2017 à 17:01
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']); }
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
18 nov. 2017 à 17:26
18 nov. 2017 à 17:26
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; ... } }
LaChaux78
Messages postés
581
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
21 novembre 2024
32
18 nov. 2017 à 18:27
18 nov. 2017 à 18:27
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"
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
18 nov. 2017 à 18:49
18 nov. 2017 à 18:49
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
LaChaux78
Messages postés
581
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
21 novembre 2024
32
18 nov. 2017 à 20:44
18 nov. 2017 à 20:44
Encore un grand merci.
Cordialement
Cordialement