|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() |
Bonjour,
Je cherche le meilleur moyen d'actualiser automatiquement un petit classement "Top 5". Ce classement est un tableau HTML affiché bien sûr dans une div. Il y a en fait plusieurs classements (actuellement potentiellement 5) qui doivent s'afficher successivement toutes les X secondes. J'ai construit une requête relativement complexe qui permet d'extraire tous les TOP 5 d'un coup, soit actuellement 25 lignes de 3 colonnes (+ 1 pour le nom du top 5) au maximum. Mon idée est de donner à Javascript ce tableau classé de 25 lignes et de développer une fonction qui changerait le classement affiché périodiquement mais sans recharger les données depuis le serveur puisque toutes les données nécessaires sont extraites en une seule fois. J'imagine qu'il faut encoder le tableau en JSon ? Et ensuite ? Dois-je construire le tableau HTML en Javascript avec son contenu variable ? Si par hasard vous connaissez un outil tout fait qui répond à ce besoin, je suis preneur.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#2 | ||||
![]() ![]() |
J'ai déjà des petits soucis avec la lecture du JSON !
Le tableau de mes top 5 encodé en JSON donne cette chaîne : Citation:
Code :
Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() |
bonsoir
Déjà, petit problème dans la déclaration de ton objet, tu utilises des nombres ou des strings comme nom de variable. tes noms doivent être sans les doubles quotes, ce qui du coup t'oblige à utiliser des noms, et pas des nombres Code :
__________________
(marquer un post résolu si vous êtes satisfait de la réponse le chat caramail de retour ? :/ http://www.tchats.net/beta.php les projets web en cours sont sur : https://github.com/rotrevrep |
||
|
00
|
|
|
#4 | |||||
![]() ![]() |
Merci pour ta réponse.
J'ai changé la génération du tableau et j'obtiens maintenant ceci en Json : Citation:
Code :
Je cherche maintenant la meilleure méthode pour parcourir ce tableau Json en Javascript, à la manière d'un foreach de php. EDIT : J'ai essayé ceci mais rien ne s'affiche : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||||
|
10
|
|
|
#5 | ||||
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
Bonsoir,
tu peux utiliser for...in pour la boucle exemple : Code :
Code :
|
||||
|
|
00
|
|
|
#6 | ||||
![]() ![]() |
Oui effectivement j'y suis arrivé avec for in.
Il me reste à faire la fonction qui génère le HTML du tableau du top 5 et la fonction qui va mettre à jour ce top 5 en bouclant sur chaque top 5 du tableau (pour le moment, il n'y en a qu'un mais il y en aura plusieurs). Encore merci pour ton aide. EDIT : Pour le moment, j'en suis à cette fonction dans mon fichier Javascript : Code :
Code :
Maintenant, je n'ai plus d'erreur mais le top 5 ne s'affiche pas. EDIT 2 : Le problème ci-dessus semble dû au fait que lot_id n'est pas interprété comme une variable dans l'expression : En remplaçant lot_id par sa valeur (une seule pour le moment), le top5 s'affiche. J'ai essayé, rapidement vu l'heure tardive, cette syntaxe pour avoir la variable mais ça ne fonctionne pas :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#7 | |||||
![]() ![]() |
Je suis proche du but !
J'ai ajouté des données pour avoir un second top 5 à afficher : Citation:
Code :
Code :
En mettant une alert(i) je vois bien les deux lots se succéder mais sans l'alerte ça semble afficher directement le dernier lot sans attendre 10 secondes entre les deux. J'ai compris qu'en fait, setTimeout n'interrompt pas l'éxécution du script en cours ; c'est seulement un temps d'attente pour exécuter le code à l'intérieur de la fonction setTimeout. Comment alors faire pour que la boucle sur les lots s'interrompe pendant 10 secondes entre chaque lot ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|||||
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() |
tu devrais essayer :
__________________
(marquer un post résolu si vous êtes satisfait de la réponse le chat caramail de retour ? :/ http://www.tchats.net/beta.php les projets web en cours sont sur : https://github.com/rotrevrep |
|
10
|
|
|
#9 | ||
![]() ![]() |
J'ai essayé diverses choses, y compris avec setInterval mais cela semble le même problème : le script qui contient setTimeout ou setInterval n'est pas interrompu par cette instruction ; c'est seulement le code figurant à l'intérieur de setXXX ou la fonction lancée par setXXX qui voit son exécution retardée.
En gros, ce que j'ai constaté et compris : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#10 | ||||||
![]() ![]() |
J'ai fini par y arriver !
![]() J'ai maintenant dans mon fichier Javascript deux fonctions. La première crée, à partir du json, un tableau Javascript des lots : Code :
Code :
Dans la vue phtml, je fais maintenant ceci : Code :
Avec ce code, les tops 5 actuels se succèdent à l'écran toutes les 10 secondes.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||||
|
10
|
Copyright © 2000-2012 - www.developpez.com