Bonjour,

J'ai une script javascript que je souhaite généraliser pour pouvoir l'utiliser dans plusieurs formulaires.

Ce script me permet d'enchainer 2 select dépendant l'un de l'autre;

La version actuelle fait référence directement à l'id d'une ligne spécifique à un formulaire comme ceci :

Formulaire html :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<select name="ss_centre_type_id" id="ss_centre_type_id" 			onChange="goTiers(document.getElementById('ss_centre_type_id'))">
<option value="-1">Aucun</option>
</select>
<select name="ss_centre_tiers_id" id="ss_centre_tiers_id" 
<option value="-1">------Choisir un Type de Tiers------</option>
</select>
Le script javascript (juste l'essentiel):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
function goTiers(param1)
...
xmlhttp.open('GET', '../ajax/ajaxTiersEnc.php?param1='+param1.value,false);
...
var liste_select = document.getElementById('ss_centre_tiers_id');
var tmp = document.createElement('option');
 
while(document.getElementById('ss_centre_tiers_id').options.length > 0)
{document.getElementById('ss_centre_tiers_id').removeChild(document.getElementById('ss_centre_tiers_id').options[0]);
Ce que je veux, c'est remplacer "ss_centre_tiers_id" par un paramètre donc faire comme ceci pour le HTML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<select name="ss_centre_type_id" id="ss_centre_type_id" 			onChange="goTiers(document.getElementById('ss_centre_type_id'), document.getElementById('ss_centre_tiers_id'))">
<option value="-1">Aucun</option>
</select>
<select name="ss_centre_tiers_id" id="ss_centre_tiers_id" 
<option value="-1">------Choisir un Type de Tiers------</option>
</select>
Et pour je javascript :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
function goTiers(param1, param2)
...
xmlhttp.open('GET', '../ajax/ajaxTiersEnc.php?param1='+param1.value,false);
...
var liste_select = param2;
var tmp = document.createElement('option');
 
whileparam2.options.length > 0)
{document.param2.removeChild(param2).options[0]);
Mais cela ne fonctionne pas.

Mon erreur est où ?