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

jQuery Discussion :

Requête AJAX vers PHP, back-end JSON et résultat


Sujet :

jQuery

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 92
    Points : 116
    Points
    116
    Par défaut Requête AJAX vers PHP, back-end JSON et résultat
    Salut à tous,

    Tout d'abord, la structure de ma requête:

    Requête AJAX (avec jQuery)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $.ajax({
      type: "POST",
      url: "/stream.php",
      data: "param="+parameters,
      success: function(stream){
        $.each(stream.user_datas, function(i,e){
          $('#result').append(e.user+', ');
        });
      }
    });
    Traitement 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
     
    <?php
    header("Content-type: application/json");
    $id = array("344","2167","309");
    $user = array("alpha","beta","gamma");
    for($i=0;$i<sizeof($id);$i++){
      $json = 
    array(
      "user_datas" => 
        array(
          "id" => $id[$i],
          "user" => $user[$i]
        )
      );
      echo json_encode($json);
      echo ",";
    }
    ?>
    Résultat de la requête:
    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
     
    {
      "user_datas":[
        {
            "id":"344",
            "user":"alpha"
        }
      ]
    },
    {
      "user_datas":[
        {
            "id":"2167",
            "user":"beta"
        }
      ]
    },
    {
      "user_datas":[
        {
            "id":"309",
            "user":"gamma"
        }
      ]
    },
    Jusque là, tout semble fonctionner correctement, sauf que le résultat n'est pas traité par le Javascript comme une donnée JSON.

    En bref, la requête renvoie l'information comme une simple donnée texte.

    Vous n'auriez pas une petite idée du problème?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    normal ce n'est pas conforme
    pour que ça fonctionne il te faut produire le json suivant
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    {
      "user_datas":[
        {
            "id":"344",
            "user":"alpha"
        },{
            "id":"2167",
            "user":"beta"
        }, {
            "id":"309",
            "user":"gamma"
        }
      ]
    }
    pour ton php ça donne
    Code php : 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: application/json");
    $id = array("344","2167","309");
    $user = array("alpha","beta","gamma");
     
    $user_datas = array();
    for($i=0;$i<sizeof($id);$i++){
      $user_data = array(
          "id" => $id[$i],
          "user" => $user[$i]
      );
      array_push($user_datas, $user_data)
    }
    echo json_encode(array('user_datas' => $user_datas));
    ?>


    par contre je ne connais pas bien JQuery et je ne vois pas dans ton code où se fait le JSON.decode(stream) mais JQuery décode peut être à la voélée.


    A+JYT

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 92
    Points : 116
    Points
    116
    Par défaut
    Parfait, merci!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/01/2014, 14h00
  2. Réponses: 1
    Dernier message: 03/04/2013, 14h45
  3. Transfert d'une requête ajax vers une servlet
    Par dverdin dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 19/11/2010, 16h24
  4. Récupération de donnée formulaire AJAX vers PHP
    Par Starbug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/10/2007, 18h38
  5. [MySQL] requête sql vers excel en php
    Par jenny06 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 20/04/2007, 11h27

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