Bonjour,

Dans une liste <select>, depuis onchange="", j'exécute la fonction test();
afin de remplir une seconde liste select.

Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
<select id="mylist1" onchange="test('<?php echo json_encode($class->scriptData); ?>', 'mylist1', 'mylist2');"></select> <select id="mylist2""></select>

Dans le fichier js:

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
function test(data, listA, listB){
var scriptData = data;
 
//alert(scriptData.element1); // valeur numérique max
 
select = document.getElementById(listB);
var max = scriptData.element1;
 
for (var i = 1; i<= max; i++) {
 
    var opt = document.createElement('option');
    opt.value = i;
    opt.innerHTML = i;
    select.appendChild(opt);
}
}
Ce code devrait fonctionner mais je tourne en rond depuis 1h.. le but est d'éviter ce genre de déclaration :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<script type="text/javascript">
  scriptData = <?php echo json_encode($class->scriptData); ?>;
</script>
En fait, celui-ci fonctionne déjà ainsi mais je voudrais déclarer la variable scriptData directement dans la fonction test() et non à l'extérieure.

Vous remerciant par avance pour votre réponse,