IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

utilisation d'eval pour accéder à un objet?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut utilisation d'eval pour accéder à un objet?
    j'aimerai accéder à un champ d'un objet de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data[i].lc_qte.# valeur de lc[x] #
    Est ce que je dois utiliser eval()? Si oui comment car je ne m'en suis jamais servi.

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    n'a rien compris

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    voila un dump de mes variables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    data[].lc_qte:
    {"26\/07\/2011 10:18:00":[{"QTE":1,"ID_PRODUIT":3771},{"QTE":2,"ID_PRODUIT":3772},{"QTE":3,"ID_PRODUIT":3773},{"QTE":4,"ID_PRODUIT":3774},{"QTE":5,"ID_PRODUIT":3775},{"QTE":12,"ID_PRODUIT":3776},{"QTE":13,"ID_PRODUIT":3777},{"QTE":14,"ID_PRODUIT":3778},{"QTE":15,"ID_PRODUIT":3779},{"QTE":16,"ID_PRODUIT":3780},{"QTE":17,"ID_PRODUIT":3781},{"QTE":18,"ID_PRODUIT":3782},{"QTE":19,"ID_PRODUIT":3783}],
    "26\/07\/2011 10:33:00":[{"QTE":20,"ID_PRODUIT":3771},{"QTE":19,"ID_PRODUIT":3772},{"QTE":18,"ID_PRODUIT":3773},{"QTE":17,"ID_PRODUIT":3774},{"QTE":15,"ID_PRODUIT":3775},{"QTE":14,"ID_PRODUIT":3776},{"QTE":113,"ID_PRODUIT":3777},{"QTE":12,"ID_PRODUIT":3778},{"QTE":11,"ID_PRODUIT":3779},{"QTE":10,"ID_PRODUIT":3780},{"QTE":9,"ID_PRODUIT":3781},{"QTE":8,"ID_PRODUIT":3782},{"QTE":7,"ID_PRODUIT":3783}],
    "26\/07\/2011 10:34:00":[{"QTE":1,"ID_PRODUIT":3772},{"QTE":1,"ID_PRODUIT":3777},{"QTE":1,"ID_PRODUIT":3781},{"QTE":1,"ID_PRODUIT":3783}],
    "26\/07\/2011 11:23:00":[{"QTE":1,"ID_PRODUIT":3775},{"QTE":1,"ID_PRODUIT":3776},{"QTE":1,"ID_PRODUIT":3782}]}
     
     
    lc:
    ["26/07/2011 10:18:00", "26/07/2011 10:33:00", "26/07/2011 10:34:00", "26/07/2011 11:23:00", false]

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Regarde plutot du coté de JSON (1, 2, 3) et notamment JSON.parse() pour récupérer des objets à partir de ces chaines.

    Un peu de patience, les messages "EVAL, c'est mal " ne vont pas tarder (et je ne leur donne pas tort, d'où la piste que je propose )

    Si oui comment car je ne m'en suis jamais servi.
    (Il n'est pas encore contaminé, il n'est pas trop tard pour agir, les gars ! )

  5. #5
    Invité
    Invité(e)
    Par défaut
    Eval c'est mal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data.lc_qte[lc[x]];//si x vaut 0, correspond à ["QTE":1,"ID_PRODUIT":3771},...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    je sais que c'est mal et c'est bien pour ca que je préciser que je ne m'en suis jamais servi!

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Sans revenir sur eval() en lui-même, c'est ici totalement inutile...
    Il existe deux façons d'accéder à une propriété d'objet, par la notation pointée (celle que tu utilises), mais qui nécessite que les noms de propriétés respectent un minimum les conventions de nommage, ce qui est loin d'être ton cas...
    L'autre solution consiste à utiliser la notation à crochets qui est adaptée à ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data[i].lc_qte['26\/07\/2011 10:18:00']
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    que dois je faire pour respecter les conventions alors parce que le méthode : data[i].lc_qte[lc[x]] ne marche pas

  9. #9
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Je vois mieux et je plussoies le eval is evil !

    Nul besoin d'évaluer ici. Les éléments des objets peuvent être accessibles de plusieurs manières.

    Par exemple, celle que tu connais object.properties
    Mais bien sûr, "properties" ici ne peut pas être une variable. JS va chercher à avoir une propriété appelée "properties", ne la trouvera (peut-être) pas et retournera undefined.

    On peut aussi passer par object['properties'] ce qui est exactement le même resultat que ci-dessus à une nuance prêt : object[properties] va , là, chercher la variable properties et la remplacer dans l'association

    Par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var properties = 'pwet';
    object = {"pwet":"test!"};
    alert(object['properties']) // undefined
    alert(object[properties]) // test!
    Tu trouveras ici ( http://jsfiddle.net/QyGP5/ ) une version simplifiée de ce que tu souhaites (car nous n'avons pas tous les éléments pour en faire une vraie )
    ou ici http://jsfiddle.net/QyGP5/1/ si tu n'as pas de console javascript (ce qui est mal)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/04/2010, 09h14
  2. utilisation d'eval pour une fonction générique
    Par DrDam dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2008, 12h22
  3. [Python] Est-ce une bonne idée d'utiliser des modules pour stocker des objets ?
    Par Neolander dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 05/04/2008, 14h45
  4. Réponses: 8
    Dernier message: 20/07/2006, 00h23
  5. utiliser un script pour inserer des objets 3D
    Par s_mihai dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2005, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo