j'aimerai accéder à un champ d'un objet de la manière suivante:
Est ce que je dois utiliser eval()? Si oui comment car je ne m'en suis jamais servi.Code:data[i].lc_qte.# valeur de lc[x] #
Version imprimable
j'aimerai accéder à un champ d'un objet de la manière suivante:
Est ce que je dois utiliser eval()? Si oui comment car je ne m'en suis jamais servi.Code:data[i].lc_qte.# valeur de lc[x] #
n'a rien compris :(
voila un dump de mes variables:
Code:
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]
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 :furieux:" ne vont pas tarder :aie: (et je ne leur donne pas tort, d'où la piste que je propose :roll:)
(Il n'est pas encore contaminé, il n'est pas trop tard pour agir, les gars ! :aie:)Citation:
Si oui comment car je ne m'en suis jamais servi.
Eval c'est mal :aie:
Code:data.lc_qte[lc[x]];//si x vaut 0, correspond à ["QTE":1,"ID_PRODUIT":3771},...
je sais que c'est mal et c'est bien pour ca que je préciser que je ne m'en suis jamais servi!
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,
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 :))Code:
1
2
3
4 var properties = 'pwet'; object = {"pwet":"test!"}; alert(object['properties']) // undefined alert(object[properties]) // test!
ou ici http://jsfiddle.net/QyGP5/1/ si tu n'as pas de console javascript (ce qui est mal)
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:data[i].lc_qte['26\/07\/2011 10:18:00']
que dois je faire pour respecter les conventions alors parce que le méthode : data[i].lc_qte[lc[x]] ne marche pas
Ben c'est peut-être dû au fait que les noms propriétés de lc_qte ne correspondent pas aux valeurs du tableau lc :aie:Citation:
Envoyé par Setsuna_00
Code:{"26\/07\/2011 10:18:00":...
Code:["26/07/2011 10:18:00",...
j'ai trouvé, en changeant un peu l'organisation ça marche avec data[i].lc_qte[0][lc[0]]
merci pour votre aide je commencait a devenir chauve :mouarf: