Probleme affichage dynamique de div

Fermé
crizane Messages postés 15 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 24 juin 2016 - 23 juin 2016 à 05:18
crizane Messages postés 15 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 24 juin 2016 - 24 juin 2016 à 22:45
Bonjour,

J'ai un petit problème:
j'ai un formulaire avec plusieurs checkbox, et une checkbox supplémentaire qui me permet de cocher toutes les autres d'un seul clic. Lorsque que clique sur les checkbox une par une, j'ai un message qui s'affiche juste en dessous de chaque chekbox cochée. Cependant, lorsque je clique sur la checkbox "tout cocher", et donc que toutes les checkbox sont cochés, les messages en dessous de chaque checkbox ne s'affichent pas.. Savez vous d'ou viens le probleme?

Voici mon code
  <li><input class="check"  type="checkbox" id="c1" />
    <label class="year" for="c1">2011</label> (<span id="compteurAff2011">0</span> out of 9 selected.) <!-- compteur de checkbox cochées-->
    <ul>
  		<div name="texte2011" id="texte2011" class="texte">
            <fieldset class="fieldset1">
	       <h5> Select all (2011) <input  class="parentCheckBox" onclick="RetourZero2011(this);compteur2011(this)" id="toutAff2011" type="checkbox"><br/> </h5>
			<div class="texte_int">
	 
	  <?php for($i = 0; $i<9; $i++) {
			 $resultat = $requete->fetch();
			 $part = $resultat['Begin_date'];
			 $idpart = $resultat['Particles_ID'];
		     $date = DateTime::createFromFormat('Y-m-d', $part); //Les deux lignes servent à convertir la date du format Y-m-d au format Y/m/d
             $part = $date->format('Y/m/d');
             $endpart = $resultat['End_date'];
			 $enddate = DateTime::createFromFormat('Y-m-d', $endpart); //Les deux lignes servent à convertir la date du format Y-m-d au format Y/m/d
             $endpart = $enddate->format('Y/m/d');
			 $brnumber = $resultat['BRnumber'];
	         $allbrnumber[$resultat['BRnumber']] = $resultat['BRnumber'];
	         $note = !empty($resultat['Note']) ? $resultat['Note'] : '';

	echo"<input type='checkbox' class='childCheckBox' id='Choix_".$i."' name='mescases[]'
   onClick='NoteOption(".$i.");compteur2011(this)' 
   value='".$idpart." BR ".$brnumber . "(".$part." - ".$endpart. ")' /> 
   BR " .$brnumber . " (" .$part ." - ". $endpart .") <br/>";
   
	echo "<div class='notes' id='comment_".$i."' style='display:none'> ";
	echo $note;		 
	echo "</div>";
			 }?></div>
			      </fieldset>
		 </div>	  
          </ul>
      </li>


et mon code java pour le probleme en question:
jQuery(document).ready(function($)
{

   //en cliquant sur la checkbox parent on coche ou décoche toutes ses chechkbox enfants
   $(".parentCheckBox").click(
      function() {
         /* on check toutes les cases enfants en se servant des fieldset comme conteneur pour se repérer et de la classe childCheckBox pour savoir lesquels cocher ou décocher*/
         $(this).parents('.fieldset1').find('.childCheckBox').prop('checked', this.checked);
         });
 
   // en cochant une case enfant on coche ou décoche la parentCheckbox
   $('.childCheckBox').click(
      function() {
      // si la case parent est cochée mais que celle que nous venons de cocher ne l'est pas (plus) : on décoche la case parent
      if ( ($(this).parents('.fieldset1').find('.parentCheckBox').is(':checked') == true)  && ($(this).is(':checked') == false) )
         {$(this).parents('.fieldset1').find('.parentCheckBox').prop('checked', false);}
      // l'attribut checked est true si on vient de cliquer sur une case à cocher enfant
      if (this.checked == true) 
	{// on définit notre valeur à true
         var val = true;
         // on boucle pour vérifier si une case à cocher n'est pas décochée : checked renvoie false
         $(this).parents('.fieldset1').find('.childCheckBox').each(
         function() 
         { // si renvoie false on attribue notre nouvelle valeur à false
         if (this.checked == false)
         val = false;
         });
         // on assigne au checkbox parent la bonne valeur : true si toutes sont cochées, false si au moins une checkbox est décochée
         $(this).parents('.fieldset1').find('.parentCheckBox').prop('checked', val);
         }	
         });

});






A voir également:

1 réponse

crizane Messages postés 15 Date d'inscription mercredi 1 juin 2016 Statut Membre Dernière intervention 24 juin 2016
24 juin 2016 à 22:45
Personne....?
0