Gérer des checkboxes - cocher et décocher automatiquement [Résolu]

TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 12:35 - Dernière réponse : TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention
- 21 mai 2008 à 20:59
Salut à Tous!!

Un petit problème! comme d'hab'! J'espère que vous pourrez m'aider!!!

En fait, j'ai une liste de modules que des étudiants doivent sélectionner grâce à une checkbox. Le problème est que certains modules nécessitent l'apprentissage d'un autre module en même temps! Par exemple, si vous voulez prendre le module Géométrie, il faudra prendre le module Maths! Mais il vous est possible de prendre le module Maths sans prendre le module Géométrie! (j'espère que vous avez compris!)
Donc pour gérer ce problème de co-modules, avec une fonction javascript, si je clique sur Géométrie, Maths se coche automatiquement! Mais je n'arrive pas à faire le contraire, c'est à dire au moment au je décoche Maths (en supposant que Géométrie soit coché préalablement), Géométrie doit se décocher!!

Voici le code que j'ai utilisé pour gérer le clique sur Géométrie :  (Cette fonction marche!)
function check_comod(fils,pere){
    if(document.getElementById(fils).checked){
        document.getElementById(pere).checked=true;
    }else{
        document.getElementById(pere).checked=false;
    }
}
Voici le code j'ai utilisé pour gérer le "décochage" de Géométrie lorsqu'on clique sur Mathématiques : (Cette fonction ne marche pas! Peut-être des interférences avec la fonction check_comod ???)function uncheck(dad,son){
    if(document.getElementById(dad).checked==false){
        document.getElementById(son).checked=false;
    }
}
J'avais pensais de désactiver la checkbox de maths lorsque Géométrie est coché! Tout ça grâce à un disabled mais la valeur d'une checkbox disabled  n'est pas récupérée lors d'un submit en PHP! Hors, j'en ai besoin pour savoir quels modules ont été cochés!
Donc si quelqu'un pouvait m'aider SVP! Javascript ou PHP! Peu importe, tant que ça marche!!!! Merci!

"C'est quand on a raison qu'il est difficile de prouver qu'on n'a pas tort." de Pierre Dac
Afficher la suite 

Votre réponse

28 réponses

Meilleure réponse
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 20:59
3
Merci
BONNE NOUVELLE!!! J'ai trouvé la réponse moi même! enfin, faut dire que vous m'avez un peu orienté un peu!!!

Donc en fait le problème, c'est que j'avais dans la liste des enfants à décocher que je parcourais dans une boucle FOR, certaines checkboxes n'étaient pas définies, donc ma boucle FOR s'arrêtaient lorsque elle rencontrait une checkbox inexistante. Car en fait, dans ma liste d'enfants à décocher, j'en affiche plus que prévu, à cause de ma requête sql!
Donc, pour passer les checkboxes dont l'id est inexistant dans le formulaire, il faut vérifier la condition suivant (en rouge) :

function checkLink(_id1, _id2){
    if(_id2!=''){
        var tableau=_id2.split('_');
        for (var i=0; i<tableau.length; i++) {
            if(document.getElementById(tableau[i]) != null){
                if(document.getElementById(_id1).checked==true) document.getElementById(tableau[i]).checked=true;
            }
        }
    }
}
function casB(_id1, _id2){
    if (!document.getElementById(_id1).checked){
        var tableau=_id2.split('_');
        for (var i=0; i<tableau.length; i++) {
            if(document.getElementById(tableau[i]) != null){
            document.getElementById(tableau[i]).checked = false;
            }
        }
    }
}

Cela ne provoque donc plus l'arrêt de la boucle, et parcourt toute la liste des enfants! de même pour les parents!!

Voilà, vu que j'ai posté et résolu le problème, on pourrait quasiment dire que je viens de poster un tuto (avec la participation de Zobibol & Bultez!)

Problème Résolu! J'espère que ça aidera certains! Allez, ciao!

Merci TheArrow 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 119 internautes ce mois-ci

Commenter la réponse de TheArrow
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 21 mai 2008 à 12:47
0
Merci
Bonjour,

    tu dois cocher/décocher l'autre en fonction de l'un ?
    pas tout saisi....
       mais ch'tiot exemple, que tu devrais pouvoir adapter....

<script>
    function coche(em,re)
    {    document.getElementById(re).checked=em.checked;
    }
</script>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 21 mai 2008 à 12:58
0
Merci
je viens ( un peu ! ) de percuter !
tu dois vouloir faire l'inverse ? non ?
    donc : document.getElementById(re).checked=!em.checked;
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
Zobibol 469 Messages postés mercredi 9 janvier 2002Date d'inscription 20 février 2017 Dernière intervention - 21 mai 2008 à 13:16
0
Merci
Bonjour, en m'appuyant sur ce qu'a fait Bultez (t'inquiète je pèse pas lourds )
j'ai obtenu ça :
    function coche(em,re)
    {    document.getElementById(re).checked=em.checked;
    }
    function checkMath(em, re){
            if ( !em.checked){
                document.getElementById(re).checked = false;
            }
    }
        </script>
       
            <label >géometrie</label>
       
            <label >Math</label>
On coche géométrie, ça coche math
on décoche math, ça décoche géométrie...

[o-_-o]
Commenter la réponse de Zobibol
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 13:17
0
Merci
Salut à toi Bultez! Merci d'avoir fait aussi vite!

En fait pour géométrie, si je le coche, mathématiques doit se cocher automatiquement! Et si je décoche géométrie maths doit se décocher! Mais ça, pour le moment je sais faire!
Ce que je n'arrive pas à faire c'est ça :
Si géométrie et maths sont cochés et je souhaite décocher maths, il faudra que géométrie se décoche en même temps car tu ne peux pas apprendre la géométrie si tu ne fais pas de maths en même temps!

"C'est quand on a raison qu'il est difficile de prouver qu'on n'a pas tort." de Pierre Dac
Commenter la réponse de TheArrow
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 13:21
0
Merci
Attendez, je vais tester ce que vous m'avez donné!!
Commenter la réponse de TheArrow
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 13:29
0
Merci
Désolé les gars ça ne marche toujours pas!!! je pense que ça doit être dû à des interférences entre les fonctions!

Parce qu'en fait, pour le cas de la géographie et des maths ça fonctionne! mais la géométrie et les maths ça marche pas!!!!

(NB: pour apprendre la géographie, tu dois apprendre les maths! comme pour la géométrie!!!)

Je sais, peut-être que vous connaissez un autre moyen qu'une fonction javascript??? en PHP, ça me semble difficile!! et après, mes compétences en langage info se limite à ça! Dsl!
Commenter la réponse de TheArrow
Zobibol 469 Messages postés mercredi 9 janvier 2002Date d'inscription 20 février 2017 Dernière intervention - 21 mai 2008 à 13:33
0
Merci
En même temps, ça fait longtemps que j'ai appris les maths ;o)

 function coche(em,re)
    {  
            if (em.checked){
                document.getElementById(re).checked=true;
            }
    }
    function checkMath(em, re){
            if ( !em.checked){
                document.getElementById(re).checked = false;
            }
    }
        </script>
       
            <label >géometrie</label>
       
            <label >Math</label>

et cela irait-il ?

[o-_-o]
Commenter la réponse de Zobibol
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 13:35
0
Merci
lol! nan mais ce sont pas les vrais noms!! C'est juste que les noms de modules sont des chiffres et des lettres donc c'est plus facile de résonner avec maths et géométrie! lol! C'est pour des gars de master quand ça!! lol

bon j'essaye je te dis quoi!
Commenter la réponse de TheArrow
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 13:43
0
Merci
Désolé de te dire ça Zobibol, mais ton code ne marche pas du tout! mon premier code marchait mieux! sauf que des fois, il plantait!

dans ton code, ce qui ne va pas c'est ça :
if ( ! document.getElementById(em).checked){
                document.getElementById(re).checked = false;
 }
Commenter la réponse de TheArrow
Zobibol 469 Messages postés mercredi 9 janvier 2002Date d'inscription 20 février 2017 Dernière intervention - 21 mai 2008 à 13:48
0
Merci
j'ai beau relire mon code (5fois), j'ai pas trouvé la ligne
if ( ! document.getElementById(em).checked){
                document.getElementById(re).checked = false;
 }

????

[o-_-o]
Commenter la réponse de Zobibol
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 13:55
0
Merci
Voilà :



    function coche(em,re)
    {    document.getElementById(re).checked=em.checked;
    }
    function checkMath(em, re){
            if ( !em.checked){
                document.getElementById(re).checked = false;
            }
    }

>>>>>
function coche(em,re) {
        document.getElementById(re).checked=em.checked;
      }
      function checkMath(em, re){
               if ( !
document.getElementById(
em).checked){
                    document.getElementById(re).checked = false;
               }
      }




       
Commenter la réponse de TheArrow
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 14:11
0
Merci
Ouais bon ce truc commence à m'énerver donc j'ai essayé de trouver un autre moyen! Désolé je peux pas encore l'expliquer pour le moment car c'est assez compliqué! Si vous voulez je vous l'expliquerai quand il sera fini (si il fonctionne!!!)

Donc maintenant j'aurais besoin de savoir quel est l'évènement qui permet de faire agir une fonction javascript lorsqu'un champs de type hidden est modifié! Mais attention la valeur de ce champs est modifiée par une autre fonction javascript! La modification ne se fait pas à la main (normal, le champs est caché! comment voulez-vous le modifier?)

Je sais qu'il existe onChange mais ça ne fonctionne pas! ???

Merci de votre aide...
Commenter la réponse de TheArrow
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 14:17
0
Merci
Bon, dsl si je réponds pas a vos messages tout de suite! je re tout à l'heure! mais si vous avez des réponses à ma question, n'hésitez pas! a tout'!
Commenter la réponse de TheArrow
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 21 mai 2008 à 14:22
0
Merci
normalement ut as tout pour faire....
on tourne autour, mais on ne saisit ( enfin moi ! ) ce que tu veux...
peut-on expliquer simplement ?

2 chekbox "A1" et "B2"

si on coche A1 que fait-on ?   si on décoche A1 : que fait-on ? 
    et curieusement, j'ai les mêmes questions pour B2 :
si on coche B2 que fait-on ?   si on décoche B2 : que fait-on ? 

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 15:02
0
Merci
Re Bultez!!!

Donc si tu coches A1, B1 doit se cocher automatiquement.
    Si tu décoches A1, B1 doit se décocher automatiquement.

Ensuite, pour B2:
Si tu coches B2, rien ne se passe sur A1 (si A1 était coché, il reste coché; s'il était décoché, il reste décoché!)
Si tu décoches B2, A1 est automatiquement décoché! (si A1 n'était pas coché, rien ne se passe alors!) >>> Etape que je n'arrive pas à faire!

Voilà, j'espère que c'est plus clair! Merci de m'aider!
Commenter la réponse de TheArrow
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 15:36
0
Merci
Excusez-moi, pour mon dernier post, B1 et B2 sont les mêmes, c'est juste un erreur de frappe!
Voici la version corrigée si vous voulez:

Donc si tu coches A1, B2 doit se cocher automatiquement.
    Si tu décoches A1, B2 doit se décocher automatiquement.

Ensuite, pour B2:
Si tu coches B2, rien ne se passe sur A1 (si A1 était coché, il reste coché; s'il était décoché, il reste décoché!)
Si tu décoches B2, A1 est automatiquement décoché! (si A1 n'était pas coché, rien ne se passe alors!) >>> Etape que je n'arrive pas à faire!

Voilà, j'espère que c'est plus clair! Merci de m'aider!
Commenter la réponse de TheArrow
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 21 mai 2008 à 15:55
0
Merci
    <script>
        function casA(em,re)
        //si tu coches A1, B1 doit se cocher automatiquement.
        //Si tu décoches A1, B1 doit se décocher automatiquement.
        {    document.getElementById(re).checked=em.checked;    }
        function casB(em,re)
        //si tu coches B2, rien ne se passe sur A1
        //Si tu décoches B2, A1 est automatiquement décoché!       
        {    if ( !em.checked )
            {    document.getElementById(re).checked=false;    }
        }
    </script>
    A1
    B2

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
Zobibol 469 Messages postés mercredi 9 janvier 2002Date d'inscription 20 février 2017 Dernière intervention - 21 mai 2008 à 16:01
0
Merci
ça ressemble fortement à ce que j'avais mis dans mon message de 13:16:15, mais il semblerait que ce soit pas ça, s'il était possible de décocher (à ce propos) tous les messages acceptés, histoire de voir ou l'on en est, parce que la, actuellement, il y a 1200 réponses acceptées et ça ne marche toujours pas !

[o-_-o]
Commenter la réponse de Zobibol
TheArrow 21 Messages postés mercredi 16 avril 2008Date d'inscription 4 décembre 2008 Dernière intervention - 21 mai 2008 à 16:07
0
Merci
oups dsl pour les réponses acceptées!!! c'est moi! je croyais que ça voulais dire qu'on avait lu le msg!! j'vais les enlever!! (j'suis nouveau sur codessources!! dsl)
Bultez, j'essaie ton code!
Commenter la réponse de TheArrow

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

gérer des checkboxes - cocher et décocher automatiquement - page 2