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 d'un Json


Sujet :

JavaScript

  1. #21
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
     
    $ticket = array ( 'one'         => 1,
                                      'two'         => 2,
                                      'three'       => 3
                                      );
     
     
            echo json_encode($ticket);
    //echo "{one:1, two:2, three:3}";
    ?>
    Voila le fichier ajax.php que je tente d'afficher, qui se rapproche plus de ce que renvoi mon fichier getTicketsBackbone.php

    je suppose que ca ne fonctionne pas car je dois modifier la façon de sortir l'infos c'est ca?


    Modif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
     $ticket =  array  ('one'=> 1,'two' => 2, 'three'       => 3 );
                                      
            $ret['ticket'][] = $ticket;               
            echo json_encode($ret); 
    //echo "{one:1, two:2, three:3}";
    ?>
    J'arrive maintenant à afficher ticket=>[object Object]

  2. #22
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $ticket = array ( 'one'         => 1,
                                      'two'         => 2,
                                      'three'       => 3
                                      );
     echo json_encode($ticket);
    ?>
    fonctionne chez moi ...
    en virant tous les espaces et retours lignes inutiles ...

  3. #23
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Effectivement ca fonctionne.
    Me reste à faire la récup complète de mes valeurs en passant par la base de donnée et je mettrais en résolu mon sujet.

    Merci beaucoup, je reposte si j'ai un souci.

  4. #24
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Dernier petit point.

    voila mon fichier ajax.php

    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
     
     
    <?php
     
    include ('include.php');
    // Connexion à la base de donnée
    $dbh = ConnectDB();
     
    // Création de la requête
    $req = "EXEC sp_Extranet_GetListeTicketsBB '12;14;21;27;31;35;39;55;61;64;67;71;76;79;85;89;','NC','','','','','','', 0, 20, '', 'ASC', 0";
    $ret = array();
     
    // Execution de la requête
    $sth = $dbh->query($req);
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
     
    if($result)
    {
            foreach($result as $data)
            {
                            $ticket = array ( 'one'         => 1,
                                                              'noAppel'     =>      htmlentities($data['noAppel']),
                                                              'x'           =>      htmlentities($data['latitude']),
                                                              'y'           =>      htmlentities($data['longitude']));
                             
            }
            echo json_encode($ticket);
    }
    ?>
    Mon array contient donc un certain nombre informations.
    Comment pourrais-je faire pour récupérer l'ensemble du tableau, et non qu'une seule valeur?

  5. #25
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    ça relève plus de php que de js ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if($result)
    {
    $ticket = array (
    	foreach($result as $data)
    	{
    	$ticket[]=array(	 'one' 	=> 1,
    							  'noAppel'	=>	htmlentities($data['noAppel']),
    							  'x'		=> 	htmlentities($data['latitude']),
    							  'y'		=> 	htmlentities($data['longitude']));
     
    	}
    	echo json_encode($ticket);
    }

  6. #26
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if($result)
    {
    	foreach($result as $data)
    	{
    	$ticket[]=array(	 
    							  'noAppel'	=>	htmlentities($data['noAppel']),
    							  'x'		=> 	htmlentities($data['latitude']),
    							  'y'		=> 	htmlentities($data['longitude']));
     
    	}
    	echo json_encode($ticket);
    }
    Ca me retourne :

    0=[object Object]
    1=[object Object]
    2=[object Object]
    3=[object Object]
    4=[object Object]
    5=[object Object]
    6=[object Object]
    7=[object Object]
    8=[object Object]
    9=[object Object]
    10=[object Object]
    11=[object Object]
    12=[object Object]
    13=[object Object]
    14=[object Object]
    15=[object Object]
    16=[object Object]
    17=[object Object]
    18=[object Object]
    19=[object Object]
    remove=function (b) {
    var a = this.indexOf(b);
    if (a != -1) {
    this.splice(a, 1);
    }
    return this;
    }

  7. #27
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    c'est un bon début ...

  8. #28
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    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
     
     
    var myjson;
    			function go(){
    				var xhr = getXhr()
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    					 myjson=eval('('+xhr.responseText+')');
                                             var liste=""
                                             for(elt in myjson) {
                                                  liste+=elt+ "="+myjson[elt]+'\n'
     
     
    											  } 
    											  alert(liste)
    					}
    				}
    				xhr.open("GET","ajax.php",true);
    				xhr.send(null);
    			}

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if($result)
    {	foreach($result as $data)
    	{
    	$ticket=array(	 
    							  'noAppel'	=>	htmlentities($data['noAppel']),
    							  'x'		=> 	htmlentities($data['latitude']),
    							  'y'		=> 	htmlentities($data['longitude']));
     
    	$ret['ticket'][] = $ticket;
     
    	}
    	echo json_encode($ret);
    }


    Voila le resultat que j'affiche

    ticket=[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]


    Peux tu m'expliquer pourquoi dans mon resultat j'ai un retour object Object?

  9. #29
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    parce que ticket est un array d'array et donc myjson est un array d'array

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(myjson[0]['noappel']

  10. #30
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Donc ma récupération d'informations serait bonne mais c'est l'affichage qui déconne?

  11. #31
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Parce que JSON c’est des objets (JavaScript Object Notation).
    Et parce que quand tu demandes le type d’un tableau, tu n’obtiens pas array mais object.

    Et un conseil au passage : arrête avec alert et mets-toi à Firebug. alert c’est comme débugger de l’assembleur sans utiliser de breakpoints : on le faisait en 1945…

  12. #32
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if(xhr.readyState == 4 && xhr.status == 200){
    					 myjson=eval('('+xhr.responseText+')');
                                             var liste=""
                                             for(elt in myjson) {
                                                  liste+=elt+ "="+myjson[elt]+'\n'
     
     
    											  } 
    								alert(liste)
    Mon alert(liste) ne m'affiche qu'une chaine finalement, le problème est donc au niveau du myjson[elt] ?

  13. #33
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    myjson n'est ni plus ni moins que la même chose que tu avais coté php ...
    je ne vois vraiment pas ce qui te pose problème là dedans ...

  14. #34
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Ça paraissait OK, mais je me retrouve à afficher object Object en continu, c'est que je n'ai finalement pas compris..

  15. #35
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    parceque myjson est un array d'array

    myjson[0] est un array

  16. #36
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Donc de quel manière j'appelle les infos de mon json alors?

    Si j'ai bien compris myjson contient les tableaux qui contiennent mes infos.

  17. #37
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     for(elt in myjson) {
                            for (arr in myjson[elt]){
                                     liste+=arr +' =>' +myjson[elt][arr]+'\n'                      
     
    											  } 
    											  alert(liste)
    					}
    comment tu ferais en php pour parcourir ton array coté php ??????
    Ben tu fais pareil cote js ....

  18. #38
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     for(elt in myjson) {
                            for (arr in myjson[elt]){
                                     liste+=arr +' =>' +myjson[elt][arr]+'\n'                      
     
    											  } 
    											  alert(liste)
    					}
    Donc dans le premier for on parcours l'ensemble des elements present dans le premier array, soit noAppel, x, y et dans le second for on va récupéré toute les valeurs qui sont présente dans noAppel, x, y ??

  19. #39
    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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    un array d'array !!!!!!!!!!!
    dans chaque element, de ton array tu as un array !

    j'array te pas de te le dire !!

  20. #40
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 105
    Points : 49
    Points
    49
    Par défaut
    Pas mal comme jeu de mot

    J'ai tjs l'affichage de Object object
    Je reposte une fois l'ensemble de mon code j'ai surement fait une boulette quelque part

    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
    <?php
     
    include ('include.php');
    // Connexion à la base de donnée
    $dbh = ConnectDB();
     
    // Création de la requête
    $req = "EXEC sp_Extranet_GetListeTicketsBB '12;14;21;27;31;35;39;55;61;64;67;71;76;79;85;89;','NC','','','','','','', 0, 20, '', 'ASC', 0";
    $ret = array();
     
    // Execution de la requête
    $sth = $dbh->query($req);
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
     
    if($result)
    {       foreach($result as $data)
            {
            $ticket=array(   
                                                              'noAppel'     =>      htmlentities($data['noAppel']),
                                                              'x'           =>      htmlentities($data['latitude']),
                                                              'y'           =>      htmlentities($data['longitude']));
                                                              
            $ret['ticket'][] = $ticket;
                             
            }
            echo json_encode($ret);
    }
     
     
     
     
    ?>
    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
     
    function getXhr(){
                                    var xhr = null; 
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest(); 
    				else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
                                    return xhr
    			}
     
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    				var myjson;
    			function go(){
    				var xhr = getXhr()
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    					 myjson=eval('('+xhr.responseText+')');
                                             var liste=""
                                              for(elt in myjson) {
                            for (arr in myjson[elt]){
                                     liste+=arr +' =>' +myjson[elt][arr]+'\n'                      
                                              alert(myjson[elt][arr])
    											  } 
    											 // alert(liste)
    					}
     
    								//alert(liste)
    							//alert(myjson[0]['noappel'])
    					}
    				}
    				xhr.open("GET","ajax.php",true);
    				xhr.send(null);
    			}

Discussions similaires

  1. [2008] Appel Web Service - Récupération d'objet JSON
    Par jdflaugergues dans le forum Développement
    Réponses: 2
    Dernier message: 17/03/2014, 14h23
  2. Récupération de données JSON d'un script PHP
    Par Nickonet dans le forum Android
    Réponses: 5
    Dernier message: 12/08/2012, 18h18
  3. récupération des données json
    Par IMS dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/09/2010, 09h27
  4. [Dojo] Erreur lors de la récupération des données JSON
    Par benoxy dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 21/05/2010, 18h12
  5. [AJAX]Récupération de données json (ajax)
    Par amarcil dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/10/2008, 19h47

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