IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

checkbox et submit


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Développeur Web (débutante)
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut checkbox et submit
    Bonjour, j'ai un petit soucis à propos de mes checkbox dans mon tableau.

    Apres plusieurs recherches j'ai trouvé quelques solutions mais rien n'y fait.

    Voici mon problème :

    Je désire cocher une ou plusieurs checkbox de mon tableau afin d'ensuite cliquer sur un bouton 'envoyer les emails' qui lui se trouve dans un titre du tableau

    mon code fonctionne bien si je boucle le bouton submit, mais ce n'est pas mon but, je pensais que c'etait un problème de form, j'ai tenté plusieurs choses, pas réussi.

    Il compte bien si je coche une ou plusieurs cases mais envoie constamment la derniere donnée du tableau, il ne boucle pas!

    ce qui complique la tache c'est que j'ai plusieurs submit dans mon tableau et a l'exterieur de ce tableau, certains doivent etre bouclé (comme la deconfirmation ou le bouton 'voir', d'autres non comme l'acceptation ou, ici, le checkbox)


    Voici mon code :

    Le tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    125
    126
    127
    128
    129
    130
    131
    	<form method="post" style="text-align: center" name="checkmail" id="checkmail" action="">
     
    					<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">
    								<a href="">
    								<input type="Submit" value="Envoyer les mails" name="btnmailrenvoie" />
    								</a>
    							</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())
    			{	
     
    				$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="">
    						<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="">	
    						<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="">	
    						<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>';
    			}
    			$reqservfinale->closeCursor();	
     
    ?>
    			</table>
    			<?php
    			}

    Et la partie code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?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 . '"');
     
     
    										$req_update->execute();
    										$req_update->closeCursor();
    									}
     
    									if($_POST['btnmailrenvoie'] == 'Envoyer les mails')
    									{
     
    										// ENVOI DE L ' EMAIL
    									}
     
    							}		
    							else 
    							{
    							echo "une case n'est pas cochée";
    							}			 	
    			}		
    ?>

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Essaye d'envoyer ton formulaire en GET et tu devrais voir que tous tes paramètres sont bien passés.
    Le seul truc, c'est qu'en PHP, si tu fais
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $variable = 1;
    $variable = 2;
    $variable = 3;
    D'après toi, tu as quoi à la fin ? Trois variables avec le même nom ou une seule pour laquelle chaque affectation a écrasé la précédente ? Alors dis-toi que ce qui est vrai pour une variable quelconque l'est aussi pour les tableaux GET et POST.

    Petite astuce, compare le code précédent avec celui-ci
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $variable[] = 1;
    $variable[] = 2;
    $variable[] = 3;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre habitué
    Femme Profil pro
    Développeur Web (débutante)
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Tout d'abord, merci de ta réponse

    j'ai testé avec le $_GET, quand je regarde sur le lien redirigé en effet il me prend bien en compte la bonne coche

    mais le soucis c'est qu'on m'a demandé (je suis actuellement en stage) de faire des restrictions sur mon lien, c'est a dire que normalement un client recoit par email un lien avec un mdp généré dessus (je sais que c'est pas tres sécurisé, mais ils ne veulent pas autrement), le client clique sur le lien et hop ca envoie sur le site internet

    du coup, quand je fais en $_GET ma restriction s'active et bloque tout acces

    voici le code pour que vous compreniez mieu mon explication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <!-- ouverture du form saisieget, method="get" -->
    		<form method="get" style="text-align: center" name="saisieget" id="saisieget" action="" >		
     
    		<?php // ouverture php
     
    // *******************************   On verifie le passeword s'il correspond bien a l'email de service et d'ecole  ******************************************//	
     
    			if((isset($_GET['Pwd_utilisateur_serv'])) && (isset($_GET['Email_service'])) && (isset($_GET['Email_ecole'])) 
    			&& (isset($_GET['Id_ecole']))  /*&& (isset($_GET['Id_service']))*/) 
    		// Si le pwd service ET l'email service ET l'email ecole existent, alors :
    		{
    			// Declaration des  variables passeword service, emailservice, et emailecole pour les lier pour la requete
    			$pwdserv = htmlspecialchars($_GET['Pwd_utilisateur_serv']);
    			$emailserv = htmlspecialchars($_GET['Email_service']);
    			$emailecole= htmlspecialchars($_GET['Email_ecole']);
    			$idecole= htmlspecialchars($_GET['Id_ecole']);
     
    			// requete afin de verifier si le mail service, le mail ecole et le mot de pass existent bien dans la base de donnees
    			$reqverifserv='SELECT count(*) AS Pwd_utilisateur_serv FROM demande WHERE Pwd_utilisateur_serv = "' .
    			$pwdserv . '" AND Email_service ="' . $emailserv . '" AND Email_ecole ="' . $emailecole . '" AND Id_ecole="' . $idecole. '"';
     
    			// execution de la premiere requete
    			$reqveriffinale=$bdd->query($reqverifserv);
    			$donneesverif=$reqveriffinale->fetch();
    			$totalpass_serv=$donneesverif['Pwd_utilisateur_serv'];
     
    			// si le total des lignes est egal a 0, alors interdiction de l'acces
    			if ($totalpass_serv == 0)
    			{
    				echo'<h2><img src = "images/sens_interdit.gif" /><br /><br /><br /><font color = black>Vous n\'avez pas 
    				l\'autorisation d\'accéder à ce site internet</font></h2>';
    			}
    			else // sinon on effectue la suite :
    			{
    			    // script que j'ai donné plus haut		
    		            }
    ?>
    donc ma question est : puis je tout changer en $_GET et garder mes restrictions? si oui, comment du coup? ca risque pas de ne pas se mettre a la suite du lien, et au contraire tout effacer?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Décochage d'une checkbox avec submit
    Par davidlariv dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/12/2014, 15h16
  2. Transmettre valeur checkbox SANS bouton "Submit"
    Par rudylar dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 25/06/2008, 17h48
  3. [.Net 2][VS2005] Treeview et checkbox submit
    Par mediateur59 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/08/2007, 10h18
  4. Garder la selection des checkbox apres submit
    Par etoileDesNeiges dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/06/2007, 13h39
  5. submit on click sur un checkbox
    Par amika dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/05/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo