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 ).

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 php : 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
$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>&nbsp;&nbsp;&nbsp;&nbsp';
	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 javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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 javascript : 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
// 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

D'avance merci