Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 12h08   #1
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 57
Points : 29
Points : 29
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 :
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.
Setsuna_00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h14   #2
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
n'a rien compris
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h24   #3
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 57
Points : 29
Points : 29
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]
Setsuna_00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h29   #4
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 074
Points : 4 074
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 )

Citation:
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 ! )
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h39   #5
Membre éclairé
 
Homme
F5(){F5}
Inscription : avril 2008
Messages : 256
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : F5(){F5}
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2008
Messages : 256
Points : 320
Points : 320
Eval c'est mal

Code :
data.lc_qte[lc[x]];//si x vaut 0, correspond à ["QTE":1,"ID_PRODUIT":3771},...
galerien69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h42   #6
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 57
Points : 29
Points : 29
je sais que c'est mal et c'est bien pour ca que je préciser que je ne m'en suis jamais servi!
Setsuna_00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h44   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
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 :
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)
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 12h45   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
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']
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h11   #9
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 57
Points : 29
Points : 29
que dois je faire pour respecter les conventions alors parce que le méthode : data[i].lc_qte[lc[x]] ne marche pas
Setsuna_00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h21   #10
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
Envoyé par Setsuna_00
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
Code :
{"26\/07\/2011 10:18:00":...
Code :
["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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h36   #11
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 57
Points : 29
Points : 29
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
Setsuna_00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h38.


 
 
 
 
Partenaires

Hébergement Web