11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je souhaite faire apparaitre une liste déroulante en fonction de plusieurs critère, le clan, la race le nombre de psy.
j'ai mon json :
[
    {
        "magie": "air",
        "sort": "Souffle puissant",
        "effet": " Générer un souffle puissant pouvant déséquilibrer ses adversaires, (sur un jet de physique raté des adversaires) -10% à sa prochaine action physique",
        "cout": "offert"
    },
    {
        "magie": "air",
        "sort": "Lévitation",
        "effet": "Permet de prendre de la hauteur ou de se survoler des surfaces le déplacement vertical ou au ras du sol reste lent 5 mètre (focus impossible pour le maintien)",
        "cout": "2"
    },
    {
        "magie": "air",
        "sort": "Saut décuplé",
        "effet": "Saute sur un ennemi avec une grande violence 1d6 et l'immobilise au sol",
        "cout": "2"
    }
[...]
]

Voila mon javascript
function check02() {		
				var phy = document.getElementById("physique").value;
				var soc = document.getElementById("social").value;
				var men = document.getElementById("mental").value;
				var clan = document.getElementById("clan").value;
				var race = document.getElementById("race").value;
				
				
				W=Math.round(parseInt(phy) + parseInt(soc) + parseInt(men));
				Total.innerHTML =W;
				Z=Math.round(parseInt(phy)/3);
				X=Math.round((parseInt(men)+(parseInt(soc)/2)-parseInt(phy)+5)/4+2);
				Y=Math.round(X/4+1);
				PV.innerHTML = Z;
				PSY.innerHTML = X;
				Nb.innerHTML = Y;
				C = Math.floor((parseInt(X)-parseInt(Y))/2+3);

				var form = document.getElementById("myForm");
				var religions = document.getElementById("religionclan").value;
				
				if (race == "Humain" || race == "Démon"  || race == "Autre"){clan="";}

				$.getScript('http://leschroniquesdeliber.fr/JDR/js/sort.json', function(script) {
                    /*en fonction du nombre de sort*/
                    var maxPsy =Y+1;
                    var obj = script;
                    for(var i=0; i<Y+1; i++){
                        var selector = document.createElement('select');
                        selector.id = 'sort_' + i;
                        selector.name = 'sort_' + i;
                        form.appendChild(selector);
                        /*en fonction du clan ou de la race et/ou de la religion afficher la magie ne dépassant pas le nombre de psy max inclure les X et pour le premier uniquement celui offert*/
                        for(var x in obj)
                        {
                            var spell = obj[x];
                            if(magie == spell.magie)
                            {
                                if(maxPsy >= spell.cout){
                                selector.append('<option value="' + spell.sort + ' cout="'+spell.cout+' desc="'+spell.effet+'">' + spell.sort + '</option>');
                                }    
                            }    
                        }

                    }
                    document.getElementById("remplir").style.display = "none";
                    document.getElementById("remove").style.display = "inline-block";
                });
				}

par avance merci du coup de main