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] Mettre des données issue d'un json sous forme table


Sujet :

AJAX

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Par défaut [AJAX] Mettre des données issue d'un json sous forme table
    bonjour je test le javascript, je voudrai savoir comment enregistrer les données issue du json dans un fichier temporaire a intervalle régulier disons toute les heures, et ensuite mettre en forme les données qui m'interesse dans un tableau en html voici le code pour l'instant je récupérer bien les données.

    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
    <!DOCTYPE html>
    <html lang="">
     
        <head>
            <meta charset="UTF-8">
            <title>App LM</title>
            <meta name="Author" content="" />
        </head>
     
        <body>
            <script type="application/javascript">
                var xhr = new XMLHttpRequest();
                try{
                    xhr.open('GET','http://api.openweathermap.org/data/2.5/weather?q=London,uk',false);
                    xhr.send(null);
                    if(xhr.status==200)
                        var list =xhr.responseText;
                        document.write(list);
                }catch(e){
                    document.write(e);
                }
            </script>
            <p>
     
            </p>
        </body>
    </html>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    tu reçois en retour une chaine au "format" JSON, il te faut la parser pour avoir accès à un "vrai" objet JSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var obj = JSON.parse( responseText);
    for( var ind in obj){ // pour parcourir les propriétés de l'objet
      console.log( obj[ind]);
    }
    Concernant document.write, c'est à bannir Comprendre document.write() en JavaScript

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Par défaut
    merci, mais comment je fais pour écrire les données à l'intèrieur d'un tableau ?
    je vois bien les infos dans les log mais j'aimerais les mettre en forme dans un tableau avec les infos qui me sont utiles et pas les autres.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Par défaut
    j'arrive a accéder au élément et a les mettre dans un table, mais je souhaite accédé a l’élément name: london comment faire svp.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"coord":{"lon":-0.13,"lat":51.51},"sys":{"type":3,"id":60992,"message":0.1036,"country":"GB","sunrise":1422172089,"sunset":1422203854},"weather":[{"id":803,"main":"Clouds","description":"broken clouds","icon":"04d"}],"base":"cmc stations","main":{"temp":278.45,"humidity":86,"pressure":1031.1,"temp_min":278.45,"temp_max":278.45},"wind":{"speed":1,"gust":2.8,"deg":180},"rain":{"3h":0},"clouds":{"all":80},"dt":1422185522,"id":2643743,"name":"London","cod":200}

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Cela revient à avoir le JS suivant
    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
    var obj = {
      "coord": {
        "lon": -0.13,
        "lat": 51.51
      },
      "sys": {
        "type": 3,
        "id": 60992,
        "message": 0.1036,
        "country": "GB",
        "sunrise": 1422172089,
        "sunset": 1422203854
      },
      "weather": [{
        "id": 803,
        "main": "Clouds",
        "description": "broken clouds",
        "icon": "04d"
      }],
      "base": "cmc stations",
      "main": {
        "temp": 278.45,
        "humidity": 86,
        "pressure": 1031.1,
        "temp_min": 278.45,
        "temp_max": 278.45
      },
      "wind": {
        "speed": 1,
        "gust": 2.8,
        "deg": 180
      },
      "rain": {
        "3h": 0
      },
      "clouds": {
        "all": 80
      },
      "dt": 1422185522,
      "id": 2643743,
      "name": "London",
      "cod": 200
    }
    donc pour récupérer le name, c'est obj.name ou encore obj['name'] et pour le reste le même principe.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Par défaut
    j'ai un problème si un élèment du json contient par exemple @id je ne peut pas acceédé a l'élèment
    j'ai ccette erreur index.html:35 Uncaught SyntaxError: Unexpected token ILLEGAL
    comment enlevé les @? merci

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Par défaut
    j ai réussi en fesant sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var regAccentA = new RegExp('[@]', 'gi');
    var json = xmlhttp.responseText;
    json = json.replace(regAccentA ,'');
    var myArr = JSON.parse(json);
    maintenant il me reste a utiliser une boucle for pour mettre les donée dans un table.

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'était pas nécessaire...

    NoSmoking t'a indiqué deux syntaxes possibles. Les caractères spéciaux ne posent de problème que pour la première syntaxe (dite pointée), pour la seconde, ça passe sans problème.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 67
    Par défaut
    OK, merci mais comment je procède pour créer le tableau avec un for ?

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Il existe des méthodes comme createElement, insertCell et j'en passe pas mal

    - Les tableaux (balise table)
    - Utilisation du DOM

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/02/2016, 16h15
  2. [AJAX] Récupérer des données avec json
    Par Rony Rauzduel dans le forum AJAX
    Réponses: 4
    Dernier message: 15/10/2012, 17h37
  3. [ZF 1.10] Ajax et Zend pour mettre des données à jour d'un tableau
    Par absot dans le forum Zend Framework
    Réponses: 1
    Dernier message: 12/10/2011, 12h03
  4. [FPDF] Mettre des données issues d'une requête dans l'entête
    Par zoom61 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/03/2007, 10h10
  5. Exportation des données d'une base Oracle sous forms
    Par moezsokrati dans le forum Forms
    Réponses: 4
    Dernier message: 13/10/2005, 08h55

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