11544 sujets

JavaScript, DOM et API Web HTML5

Pages :
(reprise du message précédent)

jytest a écrit :

Ton script JS coche bien toutes les checkboxes, quand on clique sur "toutes les pages"
... Mais pour le décochage de "toutes les pages" cela se passe comment ?
Apparemment cela est intégré dans cette fonction. Mais pourquoi cela ?


C'est grâce a cette ligne:


var check = element.checked; // On défini l'état a mettre aux checkboxes


la variable "check" prendra true si la fonction est appelé au cochage, et false si elle est appelé au décochage, et ça répercute sur toutes les autres checkbox.

jytest a écrit :

Afin de retenir les checkbox cochées, au rechargement de la feuille,
j'ai rajouté l'indice $num... comme ceci :
<input type="checkbox" name="clics[<?php echo $num; ?>]" <?php echo (isset($_POST['clics'][$num])?"checked='checked'":""); ?> id="<?php echo $id; >">


En effet, dans ton cas c'est nécessaire, car comme tu a besoin de savoir quel est le numéro précis de la checkbox, si elles ne sont pas toutes envoyée, les numéros ne correspondront plus...

jytest a écrit :

Toujours en JS,
je souhaiterais que quand on clique sur "toutes les pages",
toutes les pages se cliquent. Là, c'est déjà ok !
Mais, soyons fous, quand je déclique alors sur l'une ou l'autre des pages,
j'aurais souhaité que "toutes les pages" se déclique tout seul !!!
par la fonction "plustoutouplusrien(ind)"...
Et si, on coche toutes les 18 pages,
comment faire en sorte que la checkbox "toutes les pages" soit automatiquement cochée ?



function plustoutouplusrien(element) {
  var elements = element.form.elements;  // On selectionne les elements du formulaire
  var elementToutOuRien = elements[0]; // On défini l'element "Tout ou rien" (le premier)
  var check = true; // Par défaut le "tout ou rien" doit être coché

  for(var k = 1; k < elements.length; k++) // On commence à 1 pour ne pas tenir compte du "Tout ou rien"
  {
    if( ( elements[k].type == "checkbox" ) && !elements[k].checked ) // On tient compte que des checkbox non cochée
    {
       check = false; // Si une des checkbox est décoché, on décoche le "Tout ou rien"
       break; // On arrête la boucle
    }
  }

  elementToutOuRien.checked = check; // On défini si le "Tout ou rien" est coché ou non
}


ensuite tu met un onclick="plustoutouplusrien(this)" sur l’élément qui est dans ta boucle PHP, et c'est bon.(pas testé mais a priori ça doit le faire)
Modifié par JJK801 (22 Jun 2012 - 21:10)
jb_gfx a écrit :
Les boucles ça sert à rien, le copier/coller c'est beaucoup mieux.


-->[] Smiley rale
Modifié par JJK801 (22 Jun 2012 - 21:14)
Merci à toi, JJK801 !
Grand merci pour ton temps passé avec moi !

Tes codes étaient propres et bien commentés !
Merci, j'ai tout compris...

Merci pour tes explications très claires !

Merci...
aussi parce que cela fonctionne à merveille...
Mais cela, tu le savais déjà !
Merci, bon weekend !
JJK801,
Merci, grâce à toi,
javascript est un peu... plus clair !
C'est une bonne méthode pour apprendre !
Modifié par jytest (22 Jun 2012 - 21:30)
Pages :