Bonjour,

j'ai plusieurs listes à choix multiple dans ma page, et chacune d'elle contient un certain nombre de sociétés enregistrées dans ma base.

Je veux supprimer une société quand je clique sur son nom dans une liste.

Construction d'une liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
echo '<select id="soc_add" multiple="multiple" name="'.$idcat.'.1[]" size="3">';
 
$reqsoccat = mysql_query("SELECT S.nom_societe,L.id_societe
FROM societe S ...");
while($data = mysql_fetch_array($reqsoccat))
{
	$idsoc = $data['id_societe'];
	$nomsoc = $data['nom_societe'];?>
	<option id="<?php echo $idcat.'-'.$idsoc; ?>" value="<?php echo $idsoc; ?>" onClick="del_soc('<?php echo $idcat.'-'.$idsoc; ?>')"><?php echo $nomsoc;?></option> <?php
}
echo '</select>';
J'obtiens bien mes listes de sociétés.
Ensuite, la fonction qui est appelée dans mon onClick :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
function del_soc(societe)
{
	alert(societe);
	var listeSoc = document.getElementById("soc_add");
	var delsoc = document.getElementById(societe);
	listeSoc.removeChild(delsoc);
}
Le alert() me renvoie bien ce qu'il faut : id_categorie - id_societe.

Problème : seule la première liste ne me renvoie pas d'erreur et supprime bien la société sur laquelle j'ai cliquée.
Pour les autres listes j'obtiens une erreur :
Node was not found" code: "8
[Break on this error] listeSoc.removeChild(delsoc);\n
Le code html généré :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<select id="soc_add" size="3" name="51.1[]" multiple="multiple">
<option id="51-13" onclick="del_soc('51-13')" value="13">Societe1</option>
</select>
J'ai dû zapper quelque chose, mais je ne vois pas où.

Merci