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

Bibliothèques & Frameworks Discussion :

Transmission de tableau - JSON [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 35
    Points : 21
    Points
    21
    Par défaut Transmission de tableau - JSON
    Bonjour, mon but est simple: transmettre un tableau renseigné à partir d'une base de données à une fonction prototype après l'appel à la fonction Request.

    Voici mon code 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    function afficheNom(idClient){
        var url = 'part2.php';
        var pars = 'idClient=' + idClient;
    //    var liste = $A(alert('coucou'), traitementReponse);
     
        var myAjax = new Ajax.Request(url, {method: 'get', parameters: pars,
            onComplete: traitementReponse}
        );
    }
     
    function traitementReponse(response, clients){
        alert(clients);
     
        if(clients){
            alert('coucou');
            var str = '';
            clients.each(
                function (client)
                {
                    str += client.prenom + ' '
                           + client.nom + '<br />';
                });
            alert(str);
        }
    }
    Et voici mon code 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
    <?php
    //header('Content-Type: text/html; charset: UTF-8');
    header('Content-type: application/x-json');
    require_once('gestion_connexion/connect.php');
     
    $idClient = $_GET['idClient'];
     
    $resultat = $bd->execRequete("SELECT * FROM `ent_client` WHERE ID_CLIENT = $idClient");
    $client = $bd->objetSuivant($resultat);
     
    $maReponse = array("nom" => $client->NOM, "prenom" => $client->PRENOM);
     
    echo JSON_encode($maReponse);
    //header('X-JSON: ('.JSON_encode($maReponse).')');
    ?>
    Désolé pour les commentaires, j'ai essayé plusieurs solutions.
    Le "alert(clients)" me renvoie NULL et le "alert('coucou')" n'est donc jamais atteint.

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Salut,

    En fait le deuxième paramètre du callback onComplete est certes un objet JSON, mais correspond aux headers de la reponse. Ce que tu veux toi, c'est le body...

    Pour obtenir un JSON représenté par le body de ta réponse, il faut appeler
    , mais il faut aussi que la réponse ait comme content type "application/json" ou bien que tu forces l'interprétation 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
     
    function afficheNom(idClient){
        var url = 'part2.php';
        var pars = 'idClient=' + idClient;
    //    var liste = $A(alert('coucou'), traitementReponse);
     
        var myAjax = new Ajax.Request(url, {
          method: 'get', 
          parameters: pars,
          evalJSON: "force",
          onComplete: traitementReponse
         }
        );
    }
    function traitementReponse(response){
        var clients = response.responseJSON;
        alert(clients);
     
        if(clients){
            alert('coucou');
            var str = '';
            clients.each(
                function (client)
                {
                    str += client.prenom + ' '
                           + client.nom + '<br />';
                });
            alert(str);
        }
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 35
    Points : 21
    Points
    21
    Par défaut
    Merci, c'est parfait!

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

Discussions similaires

  1. lire un tableau json pour créer un grid (extjs 4)
    Par renardchan dans le forum Ext JS / Sencha
    Réponses: 17
    Dernier message: 21/06/2011, 16h51
  2. [AJAX] Ajouter données dans un tableau json
    Par algsoft dans le forum AJAX
    Réponses: 2
    Dernier message: 26/03/2010, 00h36
  3. Réponses: 5
    Dernier message: 14/09/2008, 23h14
  4. Transmission de tableau dynamique d'objets
    Par laulaurent dans le forum C++
    Réponses: 7
    Dernier message: 17/11/2007, 22h59
  5. Transmission de tableau
    Par MegaNam dans le forum Fortran
    Réponses: 1
    Dernier message: 03/04/2007, 10h35

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