Tester la valeur d'une checkbox + mail

Invité
Invité n'ayant pas de compte PHPfrance

01 août 2008, 15:47

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:
echo "<td class=table colspan=2><b>Décochez pour ne pas envoyer</b>"; 
for($i=0;$i<$nb;$i++){ 
echo "<tr>"; 
$o=mysql_fetch_object($result_mail); 
$id=$o->news_id; 
$nom=$o->news_nom; 
$prenom=$o->news_prenom; 
$mail=$o->news_mail; 
echo "<td class=table>$nom"; 
echo "<td class=table>$prenom"; 
echo "<td class=table>$mail"; 
echo "<td class=table align=center width=140><div class=textadmin><input type=checkbox name=select value=1 checked>"; 

} 
pour but d'envoyer ensuite un mail avec la fonction mail, mais seulement qu'aux contacts qui seront décochés,
for ($i=0;$i<$nb;$i++){ 

$query_mail_selec="select * from news "; 
$result_mail_selec=mysql_query($query_mail_selec); 
$o=mysql_fetch_object($result_mail_selec); 
$mail=$o->news_mail; 
$send_mail=mail($mail,$objet,$message,$from); 
} 
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 $send_mail=mail($mail,$objet,$message,$from);
mais je ne connais pas la syntaxe,
quelqu'un pourrait m'aider ?
merci d'avance

Eléphant du PHP | 169 Messages

01 août 2008, 15:58

Bonjour,

Dans ton code :
for ($i=0;$i<$nb;$i++){ 

$query_mail_selec="select * from news "; 
$result_mail_selec=mysql_query($query_mail_selec); 
$o=mysql_fetch_object($result_mail_selec); 
$mail=$o->news_mail; 
$send_mail=mail($mail,$objet,$message,$from); 
} 
Rajoute une condition de type
if(!$_POST['select'])
qui filtrera les cases non cochées.

Petit rappel : un input checkbox sans value coché a une valeur à TRUE

Invité
Invité n'ayant pas de compte PHPfrance

01 août 2008, 16:07

merci pour ta reponse,

j'ai rajouté le code que tu m'as indiqué,
seulement, lorsque j'en decoche, çà me fait un echec à l'envoi,
il faut modifier autre chose?
for ($i=0;$i<$nb;$i++){ 

$query_mail_selec="select * from news "; 
$result_mail_selec=mysql_query($query_mail_selec); 
$o=mysql_fetch_object($result_mail_selec); 
$mail=$o->news_mail; 
if(!$_POST['select']) {
$send_mail=mail($mail,$objet,$message,$from); 
} 

}

Eléphant du PHP | 169 Messages

01 août 2008, 16:19

Que veux tu dire par un échec à l'envoi ? Le mail part quand même ?

Invité
Invité n'ayant pas de compte PHPfrance

01 août 2008, 16:34

non le mail ne part pas en fait

Eléphant du PHP | 169 Messages

01 août 2008, 16:39

Tu peux donner le message d'erreur stp ?

Invité
Invité n'ayant pas de compte PHPfrance

01 août 2008, 16:43

en fait meme si tous sont coché , çà part mais qu'au premier de la liste c'est tout

Invité
Invité n'ayant pas de compte PHPfrance

01 août 2008, 16:55

je recapitule pour que çà soi bien clair

avec ce code la:

Code : Tout sélectionner

for ($i=0;$i<$nb;$i++){ $query_mail_selec="select * from news "; $result_mail_selec=mysql_query($query_mail_selec); $o=mysql_fetch_object($result_mail_selec); $mail=$o->news_mail; if(!$_POST['select']) { $send_mail=mail($mail,$objet,$message,$from); if ($send_mail){ echo "<br><br><div align=center class=titre2>Mail envoyé avec succés</div>"; echo "<br><div align=center class=titre><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>"; } else{ echo "<br><br><div align=center class=titre>ECHEC</div>"; echo "<br><div align=center class=titre3><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>"; } } }
donc la liste s'affiche avec les checkox coché, et
si on fait envoyé , on a le message "echec"
si on en decoche , on a le message "echec"
si on en decoche tout , on a le message "message envoyé",mais il ne part qu'on 1er de la liste

alors, que j'aurais voulu en fait que seul les contact avec les casses cochés recois l'email
aurais tu une solution?

Invité
Invité n'ayant pas de compte PHPfrance

04 août 2008, 10:02

merci de votre aide

Invité
Invité n'ayant pas de compte PHPfrance

04 août 2008, 11:45

j'ai modifié avec ce code, mais la çà envoie à toute la liste ,,, :cry:
quelqu'un connaitrait la bonne syntaxe?

Code : Tout sélectionner

for ($i=0;$i<$nb;$i++){ $o=mysql_fetch_object($result_mail); $mail=$o->news_mail; if ($_POST['select']=='1'){ $send_mail=mail($mail,$objet,$message,$from); } } if ($send_mail){ echo "<br><br><div align=center class=titre2>Mail envoyé avec succés</div>"; echo "<br><div align=center class=titre><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>"; } else{ echo "<br><br><div align=center class=titre>ECHEC</div>"; echo "<br><div align=center class=titre3><a href='liste.php?lien=news' class=ptt_lien>Retour</a></div>"; } }