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

AJAX Discussion :

[AJAX] Utiliser JSON avec New AJAXperiodicalUPDATER


Sujet :

AJAX

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [AJAX] Utiliser JSON avec New AJAXperiodicalUPDATER
    Bonjour à toutes et à tous,

    Je cherche désespérément à résoudre ce problème. Voilà je dispose d'un fichier JSON qui se met à jour automatiquement toutes les minutes via un petit script php.

    Je parviens à récupérer les données JSON sur mon site grace à une fonction javascript.

    Mon problème c'est qu'il ne se met pas à jour avec la méthode ajaxperiodicalupdater... exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Ajax.PeriodicalUpdater('loadJSON', 'dynamic-menu.json', {frequency:20, method:'get'});
    Pourriez vous me dire ce qui cloche svp ??

    En vous remerciant par avance ...

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par tm75701 Voir le message
    Pourriez vous me dire ce qui cloche svp ??
    Il faudrait nous donner plus d'éléments : le code HTML associé, la logique de l'ensemble (qu'est ce qui est lancé, sur quel évènement de quel élément de la page ?), la librairie utilisée, qu'est-ce qui se passe, y a t-il une erreur, laquelle, à quel endroit .... bref

    A+

  3. #3
    Expert confirmé
    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
    Points : 4 164
    Points
    4 164
    Par défaut
    La syntaxe de l'appel semble régulière.
    ton objet à mettre à jour périodiquement a bien loadJSON comme id ? parce que si c'est une variable contenant directement la référence de ta node, ça n'ira pas à cause des quotes. (avec un peu de chance ça ne serait que ça ^^)

    edit pour répondre en partie à la question de E.Bzz et ainsi aider les autres courageux éventuels qui voudraient se pencher sur le problème : doc de la méthode en question

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tout d'abord merci romain pour ces infos !:
    Voici mon code javascript qui permet de parser le json


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    function buildMenu(jsoncontent)
    {
    	var data=eval("(" + jsoncontent + ")");
    	document.getElementById("show").innerHTML = data.title + "<br/><br>";
    	for(i = 0; i < 3; i++)
    	{
    	var line = data.last[i].titre + "<br/><br/>";
     
    	document.getElementById("titre").innerHTML += line;
     
    	var artiste = data.last[i].artiste + "<br/><br/>";
        document.getElementById("artiste").innerHTML += artiste;
     
     
     
     
    		var titre_alternatif = data.last_alternatif[i].titre_alternatif + "<br/><br/><br/><br/>";
     
    	document.getElementById("titre_webradios").innerHTML += titre_alternatif;
     
     
    	var artiste_alternatif = data.last_alternatif[i].artiste_alternatif + "<br/><br/><br/><br/>";
     
    	document.getElementById("artiste_webradios").innerHTML += artiste_alternatif;
     
     
     
    	var titre_collector = data.last_collector[i].titre_collector + "<br/><br/><br/><br/><br/>";
     
    	document.getElementById("titre_webradios").innerHTML += titre_collector;
     
     
    	var artiste_collector = data.last_collector[i].artiste_collector+ "<br/><br/><br/><br/>";
     
    	document.getElementById("artiste_webradios").innerHTML += artiste_collector;
     
     
    	var titre_blues = data.last_blues[i].titre_blues + "<br/><br/><br/>";
     
    	document.getElementById("titre_webradios").innerHTML += titre_blues;
     
     
    	var artiste_blues = data.last_blues[i].artiste_blues+ "<br/><br/><br/>";
     
    	document.getElementById("artiste_webradios").innerHTML += artiste_blues;
     
     
    		var titre_inde = data.last_inde[i].titre_inde + "<br/><br/><br/>";
     
    	document.getElementById("titre_webradios").innerHTML += titre_inde;
     
     
    	var artiste_inde = data.last_inde[i].artiste_inde+ "<br/><br/><br/>";
     
    	document.getElementById("artiste_webradios").innerHTML += artiste_inde;
     
     
     
    	}
     
    }
     
     
    var fname = 'dynamic-menu.json';
    function loadJSON() 
    {
    	var xhr=createXHR();
    	xhr.open("GET", fname,true);
    	xhr.onreadystatechange=function() 
    	{
    		if (xhr.readyState == 4) 
    		{
    			if (xhr.status != 404) 
    			{
    				document.getElementById("titre").innerHTML = "";
    				buildMenu(xhr.responseText);
    			} 
    			else 
    			{
    				document.getElementById("titre").innerHTML = fname + " not found";
    			}
     
    		}
    	}
    	xhr.send(null);
    }
     
    window.onload = loadJSON;




    Sur ma page à afficher, j'ai donc rajouter ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Ajax.PeriodicalUpdater('loadJSON', 'dynamic-menu.json', {frequency:10, method:'get'});
    J'appelle la fonction loadJSON, le fichier json toutes les 10 secondes par la méthode get, c'est bien ça ? Ne serait-ce pas un problème de cache ou autre?

  5. #5
    Expert confirmé
    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
    Points : 4 164
    Points
    4 164
    Par défaut
    1) loadJSON est donc un nom de fonction c'est ça ? or ce n'est pas une fonction de traitement (ou callback) qui est attendue en 1er param, mais bien l'élément sur lequel doit porter la mise à jour périodique... donc effectivement il faudrait voir ton HTML pour en avoir le coeur net ^^

    2) parser le JSON alors que tu utilises Prototype ? Heu... il y a d'excellentes fonctions dans le package Ajax de Prototype pour ça... je t'invite à y jeter un oeil

    3) n'oublie pas les balises [code][/code] autour de tes extraits stp

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est bien ce qui me semblait, c'est bien l'id du div qui doit figurer sur le premier paramètre et non une fonction ajax. Une personne m'avait confirmé qu'on pouvait y placer une fonction ajax, et bien il s'est trompé. ^^

    je vais tenter de parser le json avec le prototype.js mais malheureusement je n'y connais pas grand chose en ajax.

    Merci

Discussions similaires

  1. [HighCharts] Utiliser JSON avec HighCharts and AJAX
    Par Geo-x dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 11/05/2015, 00h03
  2. [AJAX] coomment utiliser Json avec Ajax
    Par Xeuch dans le forum AJAX
    Réponses: 1
    Dernier message: 11/04/2013, 15h39
  3. [AJAX] Récupération d'un fichier JSON avec javaScript
    Par guerin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/11/2006, 19h05
  4. [AJAX] Utilisation AJAX avec IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 42
    Dernier message: 01/07/2006, 20h33

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