Page 1 sur 1

Tester la valeur d'une checkbox + mail

Posté : 01 août 2008, 15:47
par Invité
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

Posté : 01 août 2008, 15:58
par _activmik
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

Posté : 01 août 2008, 16:07
par Invité
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); 
} 

}

Posté : 01 août 2008, 16:19
par _activmik
Que veux tu dire par un échec à l'envoi ? Le mail part quand même ?

Posté : 01 août 2008, 16:34
par Invité
non le mail ne part pas en fait

Posté : 01 août 2008, 16:39
par _activmik
Tu peux donner le message d'erreur stp ?

Posté : 01 août 2008, 16:43
par Invité
en fait meme si tous sont coché , çà part mais qu'au premier de la liste c'est tout

Posté : 01 août 2008, 16:55
par Invité
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?

Posté : 04 août 2008, 10:02
par Invité
merci de votre aide

Posté : 04 août 2008, 11:45
par Invité
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>"; } }