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

  FORUM HardWare.fr
  Programmation
  PHP

  Tester la valeur d'une checkbox et envoi de mail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tester la valeur d'une checkbox et envoi de mail

n°1768731
corsichris
Posté le 04-08-2008 à 09:58:38  profilanswer
 

Bonjour,  
 
j'ai une liste de contact, ( nom, prenom, mail ), generée par une base de donnée, à laquelle j'ai associé chaque contact à une check box:  

Code :
  1. echo "<td class=table colspan=2><b>Décochez pour ne pas envoyer</b>";
  2. for($i=0;$i<$nb;$i++){
  3. echo "<tr>";
  4. $o=mysql_fetch_object($result_mail);
  5. $id=$o->news_id;
  6. $nom=$o->news_nom;
  7. $prenom=$o->news_prenom;
  8. $mail=$o->news_mail;
  9. echo "<td class=table>$nom";
  10. echo "<td class=table>$prenom";
  11. echo "<td class=table>$mail";
  12. echo "<td class=table align=center width=140><div class=textadmin><input type=checkbox name=select value=1 checked>";
  13. }


pour but d'envoyer ensuite un mail avec la fonction mail, mais seulement qu'aux contacts qui seront décochés,  
 

Code :
  1. for ($i=0;$i<$nb;$i++){
  2. $query_mail_selec="select * from news ";
  3. $result_mail_selec=mysql_query($query_mail_selec);
  4. $o=mysql_fetch_object($result_mail_selec);
  5. $mail=$o->news_mail;
  6. $send_mail=mail($mail,$objet,$message,$from);
  7. }


je voudrais connaitre la condition à ecrire pour envoyer seulement ce mail qu'aux personnes qui seront restés cochés, je pense qu'il faut mettre une condition apres

Code :
  1. $send_mail=mail($mail,$objet,$message,$from);


mais je ne connais pas la syntaxe,  
quelqu'un pourrait m'aider ?  
merci d'avance

mood
Publicité
Posté le 04-08-2008 à 09:58:38  profilanswer
 

n°1768748
matrixise
Posté le 04-08-2008 à 10:29:23  profilanswer
 

1. Ton code HTML n'est pas viable, il faut mettre entre "" la valeur de tes arguments.
2. Ton second bloc de code fait trop d'appels à la db, il te suffit de récupérer une fois l'info et ensuite l'envoyer X fois.  
3. Connais-tu les "if" ?

n°1768757
corsichris
Posté le 04-08-2008 à 10:38:53  profilanswer
 

pour le code, merci , oui çà fonctionne bien,  
pour le second code je connais les if, j'avais essayé de programmé comme çà , mais çà n'envoie en fait le mail qu'au premier de la liste

Code :
  1. for ($i=0;$i<$nb;$i++){
  2. $query_mail_selec="select * from news ";
  3. $result_mail_selec=mysql_query($query_mail_selec);
  4. $o=mysql_fetch_object($result_mail_selec);
  5. $mail=$o->news_mail;
  6. if($_POST['select']) {
  7. $send_mail=mail($mail,$objet,$message,$from);
  8.       if ($send_mail){
  9.          echo "<br><br><div align=center class=titre2>Mail envoyé avec succés</div>";
  10.          echo "<br><div align=center class=titre><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>";
  11.       }
  12.       else{
  13.          echo "<br><br><div align=center class=titre>ECHEC</div>";
  14.          echo "<br><div align=center class=titre3><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>";
  15.       }
  16. }
  17. }

}  
comment placé ou modifié la boucle if, pour que l'envoi s'effectue aussi aux autres membres de la liste selectionnée.?


Message édité par corsichris le 04-08-2008 à 10:42:04
n°1768803
corsichris
Posté le 04-08-2008 à 11:48:39  profilanswer
 

j'ai modifié le code, et maintenant çà envoie à toute la liste entiere sans tiendre compte des coché ou non de la checkbox,
quel quelqu'un connaitrait il  la bonne syntaxe?  merci d'avance

Code :
  1. for ($i=0;$i<$nb;$i++){
  2.   $o=mysql_fetch_object($result_mail);
  3.   $mail=$o->news_mail;
  4.   if ($_POST['select']=='1'){
  5.   $send_mail=mail($mail,$objet,$message,$from);
  6.   }
  7.  }
  8.   
  9.  if ($send_mail){
  10.   echo "<br><br><div align=center class=titre2>Mail envoyé avec succés</div>";
  11.   echo "<br><div align=center class=titre><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>";
  12.  }
  13.  else{
  14.   echo "<br><br><div align=center class=titre>ECHEC</div>";
  15.   echo "<br><div align=center class=titre3><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>";
  16.  }
  17. }

n°1768812
Sebastien
Posté le 04-08-2008 à 12:03:52  profilanswer
 

je regarde rapide et déjà une piste
if ($_POST['select']=='1'){  
c'est une donnée statique ca
Tu boucles sur un $i que tu utilises jamais
 
De plus tu boucles sur un $i et dedans tu te deplaces dans une requete, c'est mal
 
Les if après la boucle servent à rien dans ton cas (si plusieurs mails)

n°1768816
corsichris
Posté le 04-08-2008 à 12:06:21  profilanswer
 

merci pour ta reponse,
 
mais je ne suis pas assez calé en php pour ressoudre ce probleme,
pourrait tu m'ecrire la bonne syntaxe si tu le veux bien?

n°1768918
corsichris
Posté le 04-08-2008 à 14:17:18  profilanswer
 

quelqu'un d'autre aurais une solution sinon?  :??:

n°1769011
Sebastien
Posté le 04-08-2008 à 16:01:03  profilanswer
 

Désolé moi je fais de l'entre aide, pas du dev gratuit.
 
Faut arrêter de croire ce qu'on dit à droite et à gauche le dev php bien que facile d'accès aux premiers abords reste du dev, et si on a pas de vrais notions d'algo ca sert à rien de se lancer dedans.

n°1769379
Marty_McFl​y
Nan hé ho, d'accord?
Posté le 05-08-2008 à 10:35:08  profilanswer
 

en fait le probleme est triple, voire quadruple:
 
1) sur ta page de formulaire, il faut déjà que tu fermes tes balises <td>, <tr> et eventuellement <table>
 
2) sur cette meme pas, il faut que tu changes la propriété name de la checkbox : là, pour CHAQUE résultat de ta premiere requete, il n'y a qu'un seul nom pour chacun des checkbox. C'est donc normal que tu envoies le mail à tout le monde.  

Code :
  1. echo "<td class='table' align='center' width='140'><div class='textadmin'><input type='checkbox' name='select".$i."' checked>";


 
3) sur ta page d'envoi de mail, au lieu de faire  

Code :
  1. if($_POST['select'] == '1')


essaie plutot

Code :
  1. if($_POST['select'.$i] == '1')


 
là ça devrait fonctionner, mais je suis pas un expert dans le fonctionnement des checkbox. Apparement ça transmet la valeur de la checkbox ssi elle est cochée. Si effectivement c'est le cas, ça doit fonctionner, sinon, c'est un truc approchant.


---------------
arg(z) = pi /2 donc z = i, moi je prends pas
n°1769392
Sebastien
Posté le 05-08-2008 à 10:57:37  profilanswer
 

l'idée est la, maintenant faut faire correspondre et s'assurer que les checkboxes du premier correspondent bien aux données du deuxieme, et donc il faut etre sur de la bonne corélation des deux.
 
L'idée est donc de ne plus boucler sur une table qui vit mais sur les données de la première page.
 
Une meilleure idée pour le nom de la checkbox serait par exemple de mettre l'identifiant de la personne comme nom


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

  Tester la valeur d'une checkbox et envoi de mail

 

Sujets relatifs
Récupérer texte pour envoi par mail[PHP/HTML] récupérer valeur PHP depuis javascript
Enlever un caractère de la valeur d'une variablecomment tester la presence d'une fonction PHP dans une page ?
Compteur visite + envoi de mail[HTML][JavaScript] Problème d'accès à l'état d'une checkbox via JS
Question fonction mail()probleme envoi mail avec MIME::Lite
Plus de sujets relatifs à : Tester la valeur d'une checkbox et envoi de mail


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