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

JavaScript Discussion :

Récupération JSON dans une page HTML


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut Récupération JSON dans une page HTML
    Bonjour,
    je cherche à récupère les données envoyé de JS sous forme JSON dans ma page html.
    la page JS:
    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
     
    var selectQuery = 'SELECT longitude , latitude FROM markers';
    io.sockets.on('connection', function (socket) {
    mySqlClient.query(selectQuery, function(err, dbRes, fields) {
                if (err) throw err;
                else {
                    v2=JSON.stringify( dbRes );
                    setInterval(function(){
                        socket.emit('date',{'date': v2});
                    }, 1000);
                }
     
            });
     
    });
    la page html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var socket = io.connect();
     
        socket.on('date', function(data)
        {
          //recupére JSON
            $('#date').text(data.date);
         //je doit changer la récupération et utiliser deux variables une pour les longitudes et l'autre pour les latitudes de chaque devices
        });

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Vu qu'il me semble que tu utilises jquery, pourquoi ne pas utiliser getJSON ???

    http://api.jquery.com/jquery.getjson/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Et pourquoi la page HTML est-elle du code JavaScript ? La question ne serait-elle pas plutôt comment passer des données d'un script à un autre ? Auquel cas l'utilisation de socketIO me paraît un peu précipitée...
    One Web to rule them all

  4. #4
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    pour getJSON ...j'ai essayé mais je sais pas comment l'utilisé.
    les données reçu par la page html est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"longitude" : 12.489996 , "latitude" : 89.25666664}]
    j'ai seulement un seul ligne dans ma base de données.
    je veux récupère les valeurs dans deux variable pour les marquer dans la MAP

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    Pour le moment , j'ai marqué dans la map une seul point (c é a dire si j'ai dans ma base de données une seul point)
    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
    //code sol.js
    
    var selectQuery = 'SELECT longitude , latitude FROM markers where iddevice = 1';//pour avoir un seul ligne
    io.sockets.on('connection', function (socket) {
    mySqlClient.query(selectQuery, function(err, dbRes, fields) {
                if (err) throw err;
                else {
                     v2=JSON.stringify( dbRes );
                     console.log(v2);
                    setInterval(function(){
                        socket.emit('date',{'date': v2});
                    }, 1000);
                }
    
            });
    
    });
    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
     
    page html
    </script>
     socket.on('date', function(data)
        {
           //nombre d'Obj pour le moment un seul Objet 
            var nobj = JSON.parse(data.date).length;
            console.log(nobj);
            //Pour chaque Obj
              var obj = data.date.replace("[","").replace("]","");// Pour avoir {"longitude" : 12.489996 , "latitude" : 89.25666664}
              var json = JSON.parse(obj);
               marker = new google.maps.Marker({
                    position: new google.maps.LatLng(json["longitude"], json["latitude"]),
                    map: map
                });
            }
      });
    </script>
    <div id="map-canvas"></div>
    Le probléme si j'ai autres points à marquer aussi ?!!! (je pense une boucle! mais comment j'ai récupère chaque objet seul !!)

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2014
    Messages : 25
    Points : 69
    Points
    69
    Par défaut
    Avec getJSON tu peux tester quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $.getJSON( tonUrl, function( data ) {
        var markers = [];
        $.each( data, function( key, value ) {
             marker = new google.maps.Marker({
                    position: new google.maps.LatLng(value.longitude, value.latitude),
                    map: map
                });
            markers.push(marker); // Même si l'a tu dois pouvoir ajouter le marker directement à gmap.
        });
    Ici tu parcours donc la liste de résultat donc pas de soucis si il y a plusieurs lignes.

    C'est un petit exemple qui peut t'aiguiller sur la façon d'utiliser getJSON, je ne l'ai pas testé donc je sais pas si il est fonctionnelle, mais c'est pour que tu vois que c'est surement faisable et plus simple à gérer avec cette méthode.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    J'ai développé ce code pour atteindre mon objectif.Mais je sais pas si ce code est compatible en terme de professionnel !!! Merci de me donner votre avis

    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
    socket.on('date', function(data)
        {
          //recupére JSON
            $('#date').text(data.date);
            var nobj = JSON.parse(data.date).length;
            console.log(nobj);
            var d = data.date.replace("},{","}|{").replace("[","").replace("]","");
            //console.log("trame"+d);
            var d2 = d.split("|");
     
            for (i = 0; i < nobj; i++) { // tous les lignes de ma base de données 
                //console.log("champs"+i+d2[i]);
                var json = JSON.parse(d2[i]);
     
                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(json["longitude"], json["latitude"]),
                    map: map
                });
            }
        });

Discussions similaires

  1. Récupération de données dans une page HTML
    Par MadMakII dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/11/2008, 23h00
  2. [HTML]Inserer un *.swf dans une page html
    Par [Silk] dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/06/2005, 12h23
  3. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27
  4. Réponses: 6
    Dernier message: 14/12/2004, 02h47
  5. [Applet] Ouvrir une applet dans une page HTML
    Par debutant java dans le forum Applets
    Réponses: 4
    Dernier message: 04/06/2004, 17h11

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