Fonction checkbox checked enfants
Bonjour,
Je galère depuis un moment sur la valeur de mes checkbox....
Je m'explique, j'ai une liste de services qui est généré, et en cliquant dessus , ça m'ouvre une liste de personnes en rapport avec ce service ainsi qu'une case à cocher à cote de chaque personnes.(Les services et personnes sont en base de donnée bien sûr :zoubi:).
Et je souhaiterai avoir un bouton permettant de tout cocher ou tout décocher à cote de chaque services
Par exemple si j'ai :
-Service 1
-User 11
-User 52
-User 48
-Service 2
-Service 3
-User 41
-User 34
-User 22
-Service 4
J'ai le service 1 et 3 qui sont ouvert parce que j'ai cliqué dessus et je veux que le bouton du service 1 coche ou decoche tout les users du service 1, pareil pour le 3.
J'avais trouver à tout sélectionner mais ça prenais vraiment tout les users sans distinction de service... du coup je cris au secours :?
Voici mon code actuellement:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $liste_services = liste_services(); // SELECT * FROM EQUIPES, SERVICES
foreach ($liste_services as $service){
echo $service['ID_SERVICE'].'- ';
$id_service = $service['ID_SERVICE'];
$liste_users_service = liste_users_service($id_service); //recupe liste users du service en cours dans user.php
echo '<h7 id='.$service['ID_SERVICE'].' " onClick="show_hidden_users_service('.$service['ID_SERVICE'].');">'.$service['Nom_Service'].'</h7>  ';
echo "<input type='button' id=BT_".$service['ID_SERVICE']." value='Tout cocher' onClick='cocher_decocher('div_".$service['ID_SERVICE']."','1');'>";
echo "<input type='button' id=BT_".$service['ID_SERVICE']." value='Tout décocher' onClick='cocher_decocher('div_".$service['ID_SERVICE']."','0');'><br>";
echo '<div id=div_'.$service['ID_SERVICE'].' style="display:none;">';
foreach ($liste_users_service as $user){
echo '<input type="checkbox" name= checkboxuser[]'.' id='.$user['ID_User'].' value='.$user['ID_User'].' ><label for="'.$user['ID_User'].'">'.$user['Nom'].' '.$user['Prenom'].' '.$user['PerID'].'____'.$user['Nom_Equipe'].' ____'.$user['Nom_Service'].'_____'.$user['ID_User'].' </label><br>';
}
echo '</div>';
} |
fonction show_hidden_users_service() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function show_hidden_users_service(id_service){
if(document.getElementById('div_'+id_service).style.display == 'none'){
// alert ('coucou 1');
document.getElementById('div_'+id_service).style.display = 'block';
// document.getElementById('div_user_'+id_user).checked = true
}
else if (document.getElementById('div_'+id_service).style.display == 'block'){
// alert ('coucou 2');
document.getElementById('div_'+id_service).style.display = 'none';
}
// alert ('coucou 5');
} |
Et le code qui à mon avis bloque ...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| // conteneur = id du bloc (<div>, <p> ...) contenant les checkbox
// action = '0' pour tout décocher
// action = '1' pour tout cocher
// action = '2' pour inverser la sélection
function cocher_decocher(conteneur, action) {
var blnEtat=null;
var Chckbox = document.getElementById(conteneur).firstChild;
while (Chckbox!=null) {
if (Chckbox.nodeName=="INPUT")
if (Chckbox.getAttribute("type")=="checkbox") {
blnEtat = (action=='0') ? false : (action=='1') ? true : (document.getElementById(Chckbox.getAttribute("id")).checked) ? false : true;
document.getElementById(Chckbox.getAttribute("id")).checked=blnEtat;
}
Chckbox = Chckbox.nextSibling;
}
} |
Si on pourrait m'orienter ça serait gentil, au fait je suis un peu novice donc m'engueulé pas si mon code veux rien dire :mrgreen:
D'avance merci