Bonjour,

Sur un site intranet, j'ai un formulaire avec un select à choix multiple où j'ai intégré l'évènement javascript "OnChange".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<select name="processus[]" id="processus" OnChange="pilote('processus');" size=4 multiple="multiple">
<?php
while($DataProcessus = mysql_fetch_array($ReqProcessus))
{
echo '<option value="'.$DataProcessus['id_processus'].'">'.$DataProcessus['nom_processus'].'_'.$DataProcessus['description_processus'].'</option>';
}
?>
</select>
Quand l'utilisateur clique sur une ou plusieurs options, la fonction javascript pilote(processus) me permet de parcourir les options sélectionnées et d'ajouter via createElement un div, dans ce même formulaire, que je remplie ensuite grâce a innerHTML.

Code : 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
18
19
20
21
22
23
24
 
//Fonction qui affiche une chkbox pour savoir si un utilisateur ajouter est pilote d'un processus
function pilote(selectId)
{
var elmt = document.getElementById(selectId);
var parentElement = document.getElementById("piloteProcessus");
	if(elmt.multiple == false)
	{
		return elmt.options[elmt.selectedIndex].value;
	}
	var values = new Array();
	for(var i=0; i< elmt.options.length; i++)
	{
		if(elmt.options[i].selected == true)
		{
			values[values.length] = elmt.options[i].value; 
			var titre = document.createElement("<div>");
			titre.id = values;			
			parentElement.appendChild(titre);
			var selectedText= elmt.options[i].text;
			document.getElementById(titre.id).innerHTML = '<table style="width:50%; margin:0 auto"><tr><td style="width:80%">Pilote ' + selectedText + '&nbsp;&nbsp;&nbsp;</td><td style="width:10%"><label>PP </label><input type="checkbox" id="pp" name="pp" value="'+ values +'">&nbsp;&nbsp;&nbsp;</td><td style="width:10%"><label>PS </label></label><input type="checkbox" id="ps" name="ps" value="'+ values +'"></td></tr></table><br/>';
		}
	}
}
Ce que j'essaye de faire c'est :
Quand l'utilisateur a déselectionné une option, il faudrait que le div qui a été crée auparavant soit supprimé.

J'ai essayé d'intégrer dans le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
if(elmt.options[i].selected == false)
{
document.getElementById(parentElement).parentNode.removeChild(document.getElementById(titre.id));
}
Mais ca ne fonctionne pas bien sûr, je ne rentre jamais dans cette condition.

Je ne vois pas trop comment faire malgré mes recherches et comme ca fais deux jours que je suis dessus je me retourne vers vous.
J'espère que j'ai été assez clair dans mon explication. Si ce n'est pas le cas, n'hésitez pas à me demander plus d'infos.

Merci d'avance pour vos réponses.