|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2008 Messages : 32 ![]() |
Bonjours à tous,
Dans le cadre d'un projet pour lequel je travail, je suis en ce moment entrain de travailler sur l'intérface d'administration. Les données chargé proviennes d'un fichier JSON (format imposé) et j'ai fait pour commencer ce petit bout de code qui permet d'afficher une première liste (collections) et en cliquant sur une des collections je charges une seconde liste (oeuvres). A cette étape tout fonctionne parfaitement mais étant débutant avec JSON j'aurais souhaiter votre aide pour voir si le code pouvait être amélioré. Je vous remercie grandement d'avance de vos avis et conseils Code :
|
||
|
|
01
|
|
|
#2 | ||||
|
Membre éclairé
![]() F5(){F5} Inscription : avril 2008 Messages : 256 ![]() |
salut,
On pourrait enlever la dupplication de code : tu fais deux fois un foreach qui sont très similaires (l'un pour collections, l'autre pour artwork) donc genre une fonction qui fait la même chose, mais pour les deux Code :
Code :
|
||||
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : novembre 2008 Messages : 32 ![]() |
Merci beaucoup ton aide est très apprécié !
Par contre je me retrouve avec un élément qui ne fonctionne pas. dans cette partie de code : Code :
Code :
En tout cas merci de ton aide |
||||
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() F5(){F5} Inscription : avril 2008 Messages : 256 ![]() |
ah oui ok, je pige mieux.
c'est vrai que pour le coup c'est ptet mieux comme tu fais. J'avais dans la tête le coup des listes qui s'updatent en fonction des précédentes (un peu comme des arbres). Ici, t'as quand même plus de valeur sémantique, en voyant que collections a plus d'attributs... bref, c'est plus un non sens la factorisée en fait. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2008 Messages : 32 ![]() |
Peut-être est-il possible d'identifier à partir des childs (arts) à qu'elle collection ils sont associé, plutôt que de filtré les collections puis ensuite aller chercher les artworks.
Je suis certains qu'il y a une manière plus propre de faire que ce que j'ai fait Merci encore de ton aide ! |
|
|
00
|
|
|
#6 | ||||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Fichier JSON utiliser pour mon test. Attention dans la page web un ID doit être unique et il doit commencer par une lettre ! Code :
Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||||
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : novembre 2008 Messages : 32 ![]() |
Merci DanielHagnoul.
ce bout de code fonctionne bien, mais peux-tu m'expliquer en qui il serait préférable d'utiliser ce que tu as mentionné ? La différence que je vois par rapport à ce que j'ai fait c'est que pour le 1er each tu utilises une boucle for. |
|
|
00
|
|
|
#8 | ||||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonjour
Il y a plusieurs différences avec votre version. Depuis qu'une transaction AJAX retourne un objet différé (Deferred) on dispose d'une écriture simplifiée pour traiter l'erreur. Code :
et http://javascript.developpez.com/faq...#ObjetDeferred J'ai utilisé un fichier JSON contenant deux collections pour m'assurer de la validité du code. J'ai modifié les ID qui étaient non conformes. Une fois le JSON parsé par $.getJSON() qui utilise en interne $.parseJSON() (http://api.jquery.com/jQuery.parseJSON/) on obtient dans la variable data un objet JavaScript utilisant la notation JSON (http://www.json.org/js.html). Cet objet contient un tableau (array collections) d'objets anonymes ({...}). Il m'a donc semblé naturel de prendre la longueur du tableau (array) et de le parcourir avec une boucle for() directement plutôt que de passer par une instruction $.each() qui en interne utilise une boucle for(). On ne doit jamais oublier que jQuery c'est du JavaScript. Maintenant, vous pouvez me dire que obj.arts est également un tableau (array) contenant des objets anonymes et que là pourtant j'utilise un $.each() alors que j'aurais pu utiliser directement une boucle for(). Oui ! Mais je suis comme tout le monde, un peu fainéant, et l'écriture avec $.each() est plus simple. Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||||
|
00
|
|
|
#9 | ||
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 711 ![]() |
Oui
Je ne comprends pas cela et surtout dans ce cas ? Code :
|
||
|
|
00
|
|
|
#10 | |||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Citation:
Pardon ? Vous n'avez pas testé et regardé ce que retournent les console.log() ! ![]() id : collections10 title : some collection producer : some producer director : some director thumbnail : image1.png year : 2011 description : some description url : http://whatevs total : 3 id : arts10 sequence : 1 title : figureight thumbnail : image.png author : Author Mc.Creator discovered : 2011-06-15 13:44:31 ...
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|||
|
00
|
|
|
#11 | |
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 711 ![]() |
Citation:
Mais la plupart des temps ce genre de collections JSON se génère depuis un langage serveur qui puise dans bdd. Et dans ce cas les id sont toujours des nombres entiers. L'essentiel c'est que ces identifiants soient uniques. Et je ne vois vraiment pas de différence entre : id : arts10 id : 10 Meilleures salutations. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com