Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 11h33   #1
Invité de passage
 
Femme Charlotte
Développeur Web (débutante)
Inscription : mai 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Femme Charlotte

Informations professionnelles :
Activité : Développeur Web (débutante)

Informations forums :
Inscription : mai 2011
Messages : 10
Points : 1
Points : 1
Par défaut renvoie d'email et checkbox

Bonjour

Débutante, J'ai un petit soucis d'un renvoie d'email, quand je coche plusieurs données de mon tableau, puis je cloque sur mon bouton 'envoyer' je souhaite qur ces données soient envoyées par email

Hors il ne renvoie que la derniere donnée du tableau

On m'a parlé de form mal placé, j'ai tenté beaucoup de choses mais en vain, puis de mettre en GET, mais ca complique ma page

Avez vous d'autres idées svp?
Merci d'avance

Mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php echo'<form method="post" style="text-align: center" name="checkmail" id="checkmail" 
		action="demande_serv_ddes_conf.php?Email_ecole=' . $emailecole . '&Email_service=' . $emailserv . '&Id_ecole=' . $idecole . '&Pwd_utilisateur_serv=' . $pwdserv . '">';
?>
					<table border="0" width="100%" cellpadding="0" cellspacing="0" id="product-table">		 
 
					<br /><br />
 
					 <tr>
					   <th class="table-header-repeat line-left" style="height: 90px"><a href=""></a></th>
					   <th class="table-header-repeat line-left" style="height: 90px">
 
					    <input type="Submit" value="Envoyer" name="btnmailrenvoie" />
 
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Id demande</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Id Institut/Ecole</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Nom Institut/Ecole</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Discipline service</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Cycle stage</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Date début de stage</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px;">
					    <a href="">Date fin de stage</a>
					   </th>
					   <th class="table-header-repeat line-left" style="height: 90px"><a href="">Nombre d\'heures</a></th>
					   <th class="table-header-repeat line-left" style="height: 90px;"><a href="">Nombre demandes concernées</a></th>
					   <th class="table-header-repeat line-left" style="height: 90px;"><a href="">Nombre places accordées</a></th>
					   <th class="table-header-repeat line-left" style="height: 90px"><a href="">Observations</a></th>
					   <th class="table-header-repeat line-left" style="height: 90px"><a href="">Déconfirmer</a></th>
					  </tr>';	
					  <?php	
 
					$reqserv =('SELECT Id_demande, Id_ecole, Email_ecole, Nom_ecole, Id_service, Nom_service, Discipline_service, Cycle_stage_serv, Date_debut_stage_serv, 
					Date_fin_stage_serv, Nbre_heures_stage_serv, Demande_initiale_serv, Acceptation_serv, Confirm_serv, Memo_service, Memo_ecole, Nvelle_dde_serv, Envoie_mail_ok_serv,
					Envoie_mail_not_ok_serv, Check_ok_serv, Check_not_ok_serv FROM demande WHERE Email_service ="' . $emailserv . '" AND Confirm_serv="1" ORDER BY Id_ecole');
 
					$reqservfinale = $bdd->query($reqserv);
 
					// affichage des donnees dans le tableau
					while ($doncherch=$reqservfinale->fetch())
					{	
						// Rectification date
						$datedeb =  htmlspecialchars($doncherch['Date_debut_stage_serv']);
						$datedeb = explode('-',$datedeb);
						$datefin =  htmlspecialchars($doncherch['Date_fin_stage_serv']);
						$datefin = explode('-',$datefin);
 
						echo'<tr> 
							  <td>
							   <div align="center">
							   <img src="'. htmlspecialchars($doncherch['Envoie_mail_ok_serv']) .'" 
							   border="0" width="20" height="20" alt="" title="Email envoyé">	
							   </div>
							   <div align="center">
							   <img src="'. htmlspecialchars($doncherch['Envoie_mail_not_ok_serv']) .'" 
							   border="0" width="20" height="20" alt="" title="Email non envoyé">	
							   </div>
							  </td>
							  <td>
							   <div id="div_chck">
							   <input type="checkbox" name="btnmail[]" id="btnmail[]" value="1" />
							   </div>
							   <input type="hidden" name="id_dde_tableau_mail" id="id_dde_tableau_mail" value="' . 
							   htmlspecialchars($doncherch['Id_demande']) . '" >
							  </td>
		</form>
		<form method="post" style="text-align: center" name="acceptation" id="acceptation" 
		action="demande_serv_ddes_conf.php?Email_ecole=' . $emailecole . '&Email_service=' . $emailserv . '&Id_ecole=' . $idecole . '&Pwd_utilisateur_serv=' . $pwdserv . '">
							  <td>
							   <input type="hidden" name="id_dde_tableau" id="id_dde_tableau" value="' . 
							   htmlspecialchars($doncherch['Id_demande']) . '" >' . htmlspecialchars($doncherch['Id_demande']) . '
							  </td>
							  <td>
							   <input type="hidden" name="id_ecole_tableau" id="id_ecole_tableau" value="' . 
							   htmlspecialchars($doncherch['Id_ecole']) . '" >' . htmlspecialchars($doncherch['Id_ecole']) . '
							  </td>
							  <td>
							   <input type="hidden" name="nom_ecole_tableau" id="nom_ecole_tableau" value="' . 
							   htmlspecialchars($doncherch['Nom_ecole']) . '" >' . htmlspecialchars($doncherch['Nom_ecole']) . '
							  </td>
							  <td>' . htmlspecialchars($doncherch['Discipline_service']) . '</td>
							  <td>' . htmlspecialchars($doncherch['Cycle_stage_serv']) . '</td>
							  <td>' . $datedeb[2] . '/' . $datedeb[1] . '/' . $datedeb[0] . '</td>
							  <td>' . $datefin[2] . '/' . $datefin[1] . '/' . $datefin[0] . '</td>
							  <td>' . htmlspecialchars($doncherch['Nbre_heures_stage_serv']) . '</td>
							  <td>' . htmlspecialchars($doncherch['Demande_initiale_serv']) . '</td>
							  <td>
							   <input type="text" size="2" name="acceptation" id="acceptation" 
							   onChange="return verifrep(this.form)" > &nbsp;&nbsp;&nbsp;'
							   . htmlspecialchars($doncherch['Acceptation_serv']) . '
							  </td>			
		</form>
		<form method="post" style="text-align: center" name="memo" id="memo" 
		action="demande_serv_ddes_conf.php?Email_ecole=' . $emailecole . '&Email_service=' . $emailserv . '&Id_ecole=' . $idecole . '&Pwd_utilisateur_serv=' . $pwdserv . '">	
							  <td>
							   <input type="submit" size="2" name="voir_memo" id="voir_memo" class="btn_bas_de_page" value="Voir" >
							   <input type="hidden" name="id_dde_tableau_memo" id="id_dde_tableau_memo" value="' . 
							   htmlspecialchars($doncherch['Id_demande']) . '" >			 
							  </td>
		</form>
		<form method="post" style="text-align: center" name="deconfirm" id="deconfirm" 
		action="demande_serv_ddes_conf.php?Email_ecole=' . $emailecole . '&Email_service=' . $emailserv . '&Id_ecole=' . $idecole . '&Pwd_utilisateur_serv=' . $pwdserv . '">	
							  <td> 
							   <input type="submit" name="btndeconfirm" id="btndeconfirm" value="" onclick="return verifdeconfirmcheckbox()" 
							   title="Déconfirmer cette demande" class="icon-2 info-tooltip" />
							   <input type="hidden" name="id_dde_tableau_deconfirm" id="id_dde_tableau_deconfirm" value="' . 
							   htmlspecialchars($doncherch['Id_demande']) . '" >									  
							  </td>
						  </tr>
		</form>';
					}
					// fermeture requete $reqservfinale
					$reqservfinale->closeCursor();
Code de l'envoie d'email :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
	<?php
	if (isset($_POST['id_dde_tableau_mail']))
		{
				$id_dde_tableau_mail=htmlspecialchars($_POST['id_dde_tableau_mail']);
 
 
							if(count($_POST["btnmail"])>0) 
							{ 
									for ($i = 0; $i < count($_POST["btnmail"]); $i++)
									{
										// requete qui permet de mettre une valeur au renvoie mail serv, ainsi on le recuperera pour envoyer par mail
										$req_update = $bdd->prepare('UPDATE demande SET Renvoie_mail_serv="1" WHERE Id_demande="' . $id_dde_tableau_mail . 
										'" AND Email_service="' . $emailserv . '" AND Id_ecole="' . $idecole . '"');
 
										echo 'UPDATE demande SET Renvoie_mail_serv="1" WHERE Id_demande="' . $id_dde_tableau_mail . 
										'" AND Email_service="' . $emailserv . '" AND Id_ecole="' . $idecole . '"';
 
										$req_update->execute();
										$req_update->closeCursor();
									}
 
									if($_POST['btnmailrenvoie'] == 'Envoyer')
									{
 
										// ENVOIE DE MAIL
									}
 
							}		
							else 
							{
							echo "une case n'est pas cochée";
							}			 	
			}
charmail est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 22h36   #2
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Bonsoir,
Du fait de ta boucle,tu nommes ton checkbox (btnmail[]) de la même manière. Même si tu indiques qu'il faut le considérer comme un tableau ça ne peut pas fonctionner, car c'est comme si tu déclarais x tableaux portant le même nom et non une fois un tableau avec x valeurs.
Tout d'abord tu vires les données de l'url d'action du formulaire (ça ne sert à rien puisque ta méthode est post)
Ensuites tu incrémentes ton nom de checkbox grâce à ta boucle du genre
Code :
1
2
3
4
5
6
7
8
9
$i = 0;
while(...)
{
...
<input type="checkbox" name="btnmail_'.$i.'" id="btnmail_'.$i.'" value='1'/>
...
//juste avant la fin de ta boucle while
$i++;
}
A ce stade tu as deux solutions
1- le nombre de checkbox est clairement connu et fixe (ex. 5 fois)
2- le nombre de checkbox peut varier
dans ton script de traitement :
cas 1 :
tu boucles tranquillement du genre...
Code :
1
2
3
4
$datas = "";
for($i=0; $i<5; $i++){ // où 5 est le nombre de checkboxes fixes
    $datas .= $_POST['btnmail_'.$i];
}
cas 2 :
rajoute dans ton formulaire un champ caché qui récupère la variable $i
Code :
<input type="hidden" name="increment" value="'.$i.'"/>
puis dans ton traitement :
Code :
1
2
3
4
5
$datas = "";
$n = $_POST['increment']+1; // car tu démarres à 0
for($i=0; $i<$n; $i++){
    $datas .= $_POST['btnmail_'.$i];
}
Je n'ai repris aucun de tes codes mais ça devrait aller pour transposer, c'est l'idée en tout cas pour récupérer tes checkboxes
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 09h52   #3
Invité de passage
 
Femme Charlotte
Développeur Web (débutante)
Inscription : mai 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Femme Charlotte

Informations professionnelles :
Activité : Développeur Web (débutante)

Informations forums :
Inscription : mai 2011
Messages : 10
Points : 1
Points : 1
Merci beaucoup à toi c'est tres bien expliqué j'aime bien ta méthode!

Mais finalement j'ai trouvé, en fait je n'avais pas précisé ma "value", je devais la mettre égale à l'ID demande tout betement au lieu de "1"!

Encore merci d'avoir penché sur mon cas
charmail est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h36.


 
 
 
 
Partenaires

Hébergement Web