[JS] Transformer valeur en nom de variable...
Résolu
reaverlost
Messages postés
150
Date d'inscription
Statut
Membre
Dernière intervention
-
reaverlost Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
reaverlost Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de reprendre une carte de France SVG.
J'ai une table contenant la liste des régions avec un état (rétablit ou critique).
Ce que j'aimerai, c'est qu'en fonction de la l'état, la couleur de la région s'affiche soit en vert (pour rétablit), soit en rouge (pour critique).
Pour changer la couleur de fond d'une région, je dois faire
region.iledefrance.attr("fill", "red");
Mais comment faire ça de manière dynamique?
En fait j'ai fais une fonction qui reçoit en paramètre le nom de la région et l'état :
Et voici l'appel de la fonction :
Mais ça ne fonctionne pas, je pense que ça vient de ce nomRegion...
Une idée?
Merci d'avance
Je suis en train de reprendre une carte de France SVG.
J'ai une table contenant la liste des régions avec un état (rétablit ou critique).
Ce que j'aimerai, c'est qu'en fonction de la l'état, la couleur de la région s'affiche soit en vert (pour rétablit), soit en rouge (pour critique).
Pour changer la couleur de fond d'une région, je dois faire
region.iledefrance.attr("fill", "red");
Mais comment faire ça de manière dynamique?
En fait j'ai fais une fonction qui reçoit en paramètre le nom de la région et l'état :
function changeCouleur(nomRegion, etat) { var couleur = whitesmoke; if (etat == "valide") { couleur = "green"; } else if(etat == "critique") { couleur = "indianred"; } region.nomRegion.attr("fill", couleur); }
Et voici l'appel de la fonction :
<?php $sql = "SELECT nom_region, etat FROM carte_france"; $req = mysql_query($sql) or die ("Erreur de requête SLQ"); ?> <div id="carte_france"> <h3 class="titre_carte">CARTE DE FRANCE INTERACTIVE</h3> <?php while ($liste = mysql_fetch_array($req)) { $nom = $liste["nom_region"]; $etat = $liste["etat"]; ?> <script type="text/javascript"> changeCouleur('<?php echo $nom; ?>', '<?php echo $etat; ?>'); </script> <?php } ?> <div id="canvas_france"> </div> </div>
Mais ça ne fonctionne pas, je pense que ça vient de ce nomRegion...
Une idée?
Merci d'avance
A voir également:
- [JS] Transformer valeur en nom de variable...
- Transformer majuscule en minuscule word - Guide
- Transformer image en icone - Guide
- Nom de l'adresse ✓ - Forum Loisirs / Divertissements
- Nom sonnerie iphone - Forum iPhone
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
3 réponses
Yep, j'ai une petite idée, logiquement avec la fonction eval, tu devrait peut-être t'en sortir.
region.eval(nomRegion).attr("fill", couleur);
Merci pour la réponse !
J'ai essayé ce que tu m'a proposé, mais rien ne se passe, il ignore ma fonction j'ai l'impression...
J'ai essayé ce que tu m'a proposé, mais rien ne se passe, il ignore ma fonction j'ai l'impression...
J'ai trouvé une solution qui pour le moment fonctionne.
J'ai changé ma fonction :
J'ai changé ma fonction :
if (reg !== null) { var reg = nom.split(";"); var seuil = etat.split(";"); var couleur = "whitesmoke"; for (var state in region) { for (var i = 0; i < reg.length; i++) { if (seuil[i] == "valide") { couleur = "darkgreen"; } else if (seuil[i] == "critique") { couleur = "darkred"; } region[reg[i]].attr("fill", couleur); } } }