Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1151 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  envoyer un email différent sur résultars menu déroulant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

envoyer un email différent sur résultars menu déroulant

n°1985809
trobador
Posté le 20-04-2010 à 11:12:09  profilanswer
 

Bonjour
 
je voudrais pouvoir envoyer un email à un destinataire différent en fonction du choix de l'internaute.
 
Si l'utilisateur choisi dans une liste déroulante une ville alors le mail sera envoyé chez un destinataire se trouvant dans cette ville
 
j'ai fait ça
 
pour les variables :
 
$ville_a="Paris";
$ville_b="Poitiers";
$ville_c="Bordeaux";
$ville_d="Lyon";
$list['f_13']=array(" ",$ville_a, $ville_b, $ville_c, $ville_d);
 
$mail_1="1@gmail.com";
$mail_2="2@gmail.com";
$mail_3="3@gmail.com";
$mail_4="4@gmail.com";
 
 
// conditionnelle pour le mail
 
if( in_array($ville_a, $list['f_13'] ) )
    $mail = $mail_1;
elseif( in_array($ville_b, $list['f_13'] ) )
    $mail = $mail_2;
elseif( in_array($ville_c, $list['f_13'] ) )
    $mail = $mail_3;
elseif ( in_array($ville_d, $list['f_13'] ) )
    $mail = $mail_4;
else
    $mail = $mail_4;
 
 
// adresse mail
 
if(mail($mail, $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
 
 
   
 
Mais voilà tout arrive dans le premier mail quelque soit le choix... peut être à cause de la liste
 
Merci

mood
Publicité
Posté le 20-04-2010 à 11:12:09  profilanswer
 

n°1985828
rufo
Pas me confondre avec Lycos!
Posté le 20-04-2010 à 11:33:32  profilanswer
 

Elle est pas pratique la structure de tes données, fais plutôt un truc du genre :

Code :
  1. $ArrayMailsVilles = array(
  2.                                   "Paris" => "1@gmail.com",
  3.                                   "Poitiers" => "2@gmail.com",
  4.                                   "Bordeaux" => "3@gmail.com",
  5.                                   "Lyon" => "4@gmail.com"
  6.                                 );
  7. $MailParDefaut = "4@gmail.com";
  8. $list['f_13'] = array_merge(array(" " ), array_keys($ArrayMailsVilles));  // J'imagine que c'est pour l'affichage de ta liste déroulante, sinon, ça sert à rien
  9. if (!empty($_POST))
  10. {
  11.     $VilleSelectionne = $_POST['NomDuChampListeDeroulante'];  // Provient de ton formulaire qui a été posté
  12.     $mail = $MailParDefaut;
  13.     if (isset($ArrayMailsVilles[$VilleSelectionne]))
  14.     {
  15.          $mail = $ArrayMailsVilles[$VilleSelectionne];
  16.     }
  17.    
  18.     // Envoi du mail et tout le reste...
  19. }


Message édité par rufo le 20-04-2010 à 11:33:55

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1985879
trobador
Posté le 20-04-2010 à 12:38:32  profilanswer
 

Merci Rufo
je vais essayer ça tout de suite

n°1985926
trobador
Posté le 20-04-2010 à 14:17:13  profilanswer
 

Non il n'y a rien à faire
c'est toujours l'option par défaut qui sera choisie
 
je ne sais pas quoi faire pour que cela parte là où il faut !
 
merci

n°1985929
rufo
Pas me confondre avec Lycos!
Posté le 20-04-2010 à 14:23:39  profilanswer
 

trobador a écrit :

Non il n'y a rien à faire
c'est toujours l'option par défaut qui sera choisie
 
je ne sais pas quoi faire pour que cela parte là où il faut !
 
merci


 
Montre tout ton code, en particulier celui qui génère le code html du formulaire. Y'a pas de raison que ça marche pas :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1985988
trobador
Posté le 20-04-2010 à 16:36:21  profilanswer
 


 
 
 
 
Voilà pour le code "html"
 

Code :
  1. <DIV class=row>
  2. <DIV class=left>Ville souhait&eacute;e * :</DIV>
  3. <DIV class=right><select onChange="changeListe();" style='width:200 <?if($errf_13==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_13' size='1'>
  4. <? for($id=0;$id<count($list['f_13']);$id++){
  5. if($id==$f_13){$ct="selected";}
  6. print("<option ".$ct." value=".$id.">".$list['f_13'][$id]."</option>" );
  7. unset($ct);
  8. }
  9. ?> 
  10. </select></DIV>
  11. <DIV class=clear></DIV></DIV>
  12. <DIV class=row>
  13. <DIV class=left>P&eacute;riode de stage * :</DIV>
  14. <DIV class=right><select style='width:200 <?if($errf_12==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_12' size='1'>
  15. <? for($id=0;$id<count($list['f_12']);$id++){
  16. if($id==$f_12){$ct="selected";}
  17. print("<option ".$ct." value=".$id.">".$list['f_12'][$id]."</option>" );
  18. unset($ct);
  19. }?>
  20. </select></DIV>
  21. <DIV class=clear></DIV></DIV>


 
et puis le php
 
 
 
 

Code :
  1. $ville_a="Paris";
  2. $ville_b="Poitiers";
  3. $ville_c="Bordeaux";
  4. $ville_d="Lyon";
  5. $list['f_13']=array(" ",$ville_a, $ville_b, $ville_c, $ville_d);
  6. $mail_1="1@gmail.com";
  7. $mail_2="2@gmail.com";
  8. $mail_3="3@gmail.com";
  9. $mail_4="4@gmail.com";
  10. if($f_13==0){
  11.  $erreur.="<li><span class='txterror'>Le champ &laquo; Ville souhait&eacute;e &raquo; n'a pas &eacute;t&eacute; d&eacute;fini.</span>";
  12.  $errf_13=1;
  13. }
  14. if($erreur=="" ){
  15. $titre="Inscription";
  16.  $tete="From:".$f_5."\n";
  17.  $corps.="Nom : ".$f_1."\n";
  18.  $corps.="Prénom : ".$f_2."\n";
  19.  $corps.="N° de téléphone : ".$f_3."\n";
  20.  $corps.="Autre n° de téléphone : ".$f_4."\n";
  21.  $corps.="Email : ".$f_5."\n";
  22.  $corps.="Adresse : ".$f_6."\n";
  23.  $corps.="Code postal : ".$f_7."\n";
  24.  $corps.="Ville : ".$f_8."\n";
  25.  $corps.="Prénom de l'élève : ".$f_9."\n";
  26.  $corps.="Classe : ".$list['f_10'][$f_10]."\n";
  27.  for($id=0; $id<count($list['f_11']); $id++){
  28.   if($f_11[$id]==1){
  29.    $corps.="Matières choisies : ".$list['f_11'][$id]."\n";
  30.   }
  31.  }
  32.  $corps.="Période de stage : ".$list['f_12'][$f_12]."\n";
  33.  $corps.="Ville et centre de Stage souhaité : ".$list['f_13'][$f_13]."\n";
  34.  $corps.="Ajouter un commentaire : ".$f_14."\n";
  35.  $corps.="Adresse mail : ".$mail."\n";
  36. //  echo $corps; //Mode débuggage :)
  37. //  exit();
  38. $ArrayMailsVilles = array(
  39. $ville_a => $mail_1,
  40. $ville_b => $mail_2,
  41. $ville_c => $mail_3,
  42. $ville_d => $mail_4
  43. );
  44.  
  45. $MailParDefaut = $mail_4 ;
  46. $list['f_13'] = array_merge(array(" " ), array_keys($ArrayMailsVilles)); 
  47. if (!empty($_POST))
  48. {
  49. $VilleSelectionne = $_POST['f_13']; 
  50. $mail = $MailParDefaut;
  51. if (isset($ArrayMailsVilles[$VilleSelectionne]))
  52. {
  53. $mail = $ArrayMailsVilles[$VilleSelectionne];
  54. }
  55. }
  56. //  adresse mail  :)
  57.  if(mail($mail, $titre, stripslashes($corps), $tete)){
  58.   $ok_mail="true";
  59.  }else{
  60.   $erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
  61.  }
  62. }
  63. }


 
avec ta proposition
 
Merci


Message édité par trobador le 20-04-2010 à 16:43:25
n°1985999
rufo
Pas me confondre avec Lycos!
Posté le 20-04-2010 à 17:15:04  profilanswer
 

ben il est ou ton formulaire (balise form et bouton submit) :??: Je vois que des div et une balise select... :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1986006
trobador
Posté le 20-04-2010 à 17:34:28  profilanswer
 

Il y a un fichier javascript "changelist"
le choix du menu déroulant ville  
fait varier aussi le menu déroulant date
mais il y a des formes
 
"# <select onChange="changeListe();" style='width:200 <?if($errf_13==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_13' size='1'>
# <? for($id=0;$id<count($list['f_13']);$id++){
# if($id==$f_13){$ct="selected";}
# print("<option ".$ct." value=".$id.">".$list['f_13'][$id]."</option>" );
# unset($ct);"

n°1986017
rufo
Pas me confondre avec Lycos!
Posté le 20-04-2010 à 17:49:34  profilanswer
 

mais pour qu'un formulaire soit envoyé au serveur, il faut une balise form, donc elle est où  dans ton code :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1986283
trobador
Posté le 21-04-2010 à 13:56:45  profilanswer
 

Finalement  pour obtenir que l'adresse se définisse en fonction d'un choix fait sur un menu déroulant
 
ça marche
Merci à ceux qui m'ont aidé
 
les variables  

Code :
  1. $ville_a="Paris";
  2. $ville_b="Poitiers";
  3. $ville_c="Bordeaux";
  4. $ville_d="Lyon";
  5. $list['f_13']=array(" ",$ville_a, $ville_b, $ville_c, $ville_d);
  6. $mail_1="1@gmail.com";
  7. $mail_2="2@gmail.com";
  8. $mail_3="3@gmail.com";
  9. $mail_4="4@gmail.com";


 

Code :
  1. if( $list['f_13'][$f_13] == $ville_a ){
  2.     $mail = $mail_1;
  3. }elseif( $list['f_13'][$f_13] == $ville_b ){
  4.     $mail = $mail_2;
  5. }elseif( $list['f_13'][$f_13] == $ville_c  ){
  6.     $mail = $mail_3;
  7. }elseif ( $list['f_13'][$f_13] == $ville_d ){
  8.     $mail = $mail_4;
  9. }else{
  10.     $mail = $mail_4;
  11. }


 
ensuite

Code :
  1. $titre="Inscription ";
  2.  $tete="From:".$f_5."\n";
  3.  $corps.="Adresse : ".$f_6."\n";
  4.  $corps.="Code postal : ".$f_7."\n";
  5.  $corps.="Ville : ".$list['f_13'][$f_13]."\n";
  6.  $corps.="Ajouter un commentaire : ".$f_14."\n";
  7.  $corps.="Adresse mail : ".$mail."\n"; // test email


Message édité par trobador le 21-04-2010 à 14:08:46
mood
Publicité
Posté le 21-04-2010 à 13:56:45  profilanswer
 

n°1986299
rufo
Pas me confondre avec Lycos!
Posté le 21-04-2010 à 14:11:04  profilanswer
 

Je comprends franchement pas pourquoi t'as pas repris ma structure qui t'aurais évité tous ces tests et surtout, si jamais tu rajoutes une ville, moi, t'as juste à la rajouter dans le tableau, alors que là, faut modifier plusieurs endroits dans le code :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1986618
trobador
Posté le 22-04-2010 à 13:34:46  profilanswer
 

Oui tu as certainement raison, mais je n'ai pas réussi à la faire marcher.  
 
Certainement dû à mes très faible connaissance du php. L'autre version me paraissait plus compréhensible
 
Merci

n°1986641
rufo
Pas me confondre avec Lycos!
Posté le 22-04-2010 à 14:00:54  profilanswer
 

Par hasard, t'aurais pas la variable "register_globals" à ON dans ton php.ini :??: Parce que je vois pas où ta var php $f_13 prend sa valeur en provenance de ton formulaire (pas d'appel à $_POST ou $_GET dans ton code). La seule explication est que $f_13 soit une variable globale et qui a le même nom que le champ de ton formulaire, ce qui n'est vraiment pas une bonne chose. En changeant de serveur, ton script ne marchera probablement plus car on préconise pour une question de sécurité que register_globals soit par défaut à OFF :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  envoyer un email différent sur résultars menu déroulant

 

Sujets relatifs
[VBA] Comment envoyer des mail automatiquement?[GMF] Ajout d'entrée dans le menu contextuel
code java pour afficher un frame en click sur le menu en netbeanscode java pour afficher un frame en click sur le menu netbeans
un menu contextuelle(JpopMenu) avec click à droitCréer un menu déroulant basique
[PHP / SQL] Conception Menu Dynamique a sous Categories VariablesMenu avec effets Alpha Tweenlite et liens
Menu CSS déroulant, problème IE8 
Plus de sujets relatifs à : envoyer un email différent sur résultars menu déroulant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR