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 :

Obtenir les variables d'une requête PHP avec Ajax


Sujet :

AJAX

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut Obtenir les variables d'une requête PHP avec Ajax
    J'arrive à afficher le résultat d'une requete ajax dans php sous la forme d'une chaine de caractères avec les trois variables et leur valeur.
    Mais je ne peux pas extraire de cette chaine chacune des variables avec sa valeur.

    Ajax
    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
     
     $("#ok").click(function() {
                            var login = $("#login").val();
                            var password = $("#password").val();
                            var dataString = 'login='+ login + '&password=' + password;
                            $.ajax({
                              type: "POST",
                              url: 'login.php',
                              data: dataString,
                              dataType: "html",
                              success: function(data) {
                                  if (data == 0) {
                                      $('#errormess').html("identifiant ou mot de passe non reconnu");
                                  } else {
                                      $('#errormess').html(data);   
                                       alert(data.idUtilisateur);
                                        alert(data.genre);
                                        alert(data.semaine);
                                 }
                              }
                           });
                          return false;
                    });
    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
     $sql = "SELECT * FROM utilisateurs WHERE login = '$login' AND password = '$password'";
       $result = $conn->query($sql);
       if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                $idUtilisateur= $row["id"];
                echo "{ idUtilisateur: $idUtilisateur }";
                $genre= $row["genre"];
                echo "{ genre: $genre}";
                $today=time();
                $semaine=strftime('%W',$today) ;
                echo "{ semaine: $semaine }";
            }
       }
     
      $conn->close();
    success: function(data) { affiche :
    "{ idUtilisateur: 1 }{ genre: 1}{ semaine: 12 }"
    Mais les alert affichent "undefined".
    Et si je remplace dataType: "html" par dataType: "json", je n'obtiens même pas l'affichage de la chaine data : { idUtilisateur: 1 }{ genre: 1}{ semaine: 12 }
    Comment puis-je afficher les alert avec les trois variables (idUtilisateur, genre et semaine) avec leurs valeurs respectives ?
    Merci de votre aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 091
    Points : 44 645
    Points
    44 645
    Par défaut
    Bonjour,
    c'est surtout ta réponse côté serveur qu'il faut revoir
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $idUtilisateur= $row["id"];
    echo "{ idUtilisateur: $idUtilisateur }";
    $genre= $row["genre"];
    echo "{ genre: $genre}";
    $today=time();
    $semaine=strftime('%W',$today) ;
    echo "{ semaine: $semaine }";

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    J'ai changé le code.
    J'obtiens la réponse
    { idUtilisateur: 1 }{ genre: 1}{ semaine: 12 }
    Et si je demande "alert(data.idUtilisateur", j'obtiens undefined.
    La réponse data semble bien contenir trois variables/valeur sous le format json, mais on ne peut pas les extraire.
    Et si je change le dataType pour "json", je n'obtiens plus aucune réponse.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 091
    Points : 44 645
    Points
    44 645
    Par défaut
    ...sous le format json,
    au format JSON tu devrais recevoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
      idUtilisateur: 1,
      genre: 1, 
      semaine: 12
    }

    Et si je change le dataType pour "json", je n'obtiens plus aucune réponse.
    place un error: dans ta fonction et lit le message d'erreur.


    J'ai changé le code.
    connais tu json_encode ?

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    Peux-tu me montrer ?
    Je ne sais pas comment mettre un message d'erreur?
    Et je ne connais pas json encode
    Je viens juste de découvrir json et je ne sais pas comment l'utiliser pour passer les variables php à la fonction success.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 091
    Points : 44 645
    Points
    44 645
    Par défaut
    Citation Envoyé par fredericmarcel Voir le message
    Peux-tu me montrer ?
    ...
    Et je ne connais pas json encode
    ...
    la réponse est dans
    Citation Envoyé par NoSmoking
    connais tu json_encode ?

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    La réponse est certainement là, mais je n'ai pas réussi à encoder et décoder. Ca n'a jamais fonctionné et je n'ai pas pu trouver qu'elle était l'erreur.
    J'ai du me débrouiller sans json et la solution me satisfait pleinement.
    Cela aurait été plus facile si quelqu'un m'avait montré à partir de mon code ce qui m'aurait permis de comprendre json à partir d'une réussite plutôt que d'une énigme que je n'arrivais pas à percer.
    Ca me rappelle la blague :
    -dis papa, c'est loin l'Amérique ?
    -tais-toi et nage.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 091
    Points : 44 645
    Points
    44 645
    Par défaut
    Si je prend le code du premier exemple de la page citée
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    echo json_encode($arr);
    ?>
    et le code que tu nous as fourni
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $idUtilisateur= $row["id"];
    echo "{ idUtilisateur: $idUtilisateur }";
    $genre= $row["genre"];
    echo "{ genre: $genre}";
    $today=time();
    $semaine=strftime('%W',$today) ;
    echo "{ semaine: $semaine }";
    et si on en fait la synthèse on obtient
    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
    16
    <?php
    $idUtilisateur= $row["id"];
    //echo "{ idUtilisateur: $idUtilisateur }";
    $genre= $row["genre"];
    //echo "{ genre: $genre}";
    $today=time();
    $semaine=strftime('%W',$today) ;
    //echo "{ semaine: $semaine }";
     
    $arr = array(
    	'idUtilisateur' => &idUtilisateur,
    	'genre' => $genre,
    	'semaine' => $semaine
    );
    echo json_encode($arr);
    ?>
    donc a priori rien de bien complexe quoique tu en penses.

    Quant à ton histoire tu oublies quand même une chose IMPORTANTE, c'est que le garçon a au moins appris à nager avant de ce lancer dans la traversée.

  9. #9
    Membre du Club
    Homme Profil pro
    Responsable en conduite du changement
    Inscrit en
    Novembre 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Responsable en conduite du changement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2015
    Messages : 84
    Points : 62
    Points
    62
    Par défaut
    Merci. En ce qui concerne Json, grâce à ton aide, je suis arrivé en Amérique après une semaine d'un voyage difficile.
    Après coup, bien sûr, cela semble si évident.
    Je n'avais pas compris l'exemple parce que j'étais tellement centré sur mes variables que je n'ai pas pensé à passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $arr = array(
    	'idUtilisateur' => &idUtilisateur,
    	'genre' => $genre,
    	'semaine' => $semaine
    );
    Et je n'avais pas encore compris la syntaxe de json =>.
    Encore une fois, merci.
    PS en ce qui concerne ta remarque sur la traversée de l'Atlantique, si je savais nager (en ce qui concerne json), je ne poserais pas la question sur le forum.
    Pour l'ensemble de mon voyage de développement de mon appli, je ne suis pas un développeur professionnel (j'ai un autre métier) et je me débrouille fort bien dès que j'ai compris comment résoudre les problèmes spécifiques que je rencontre. Grâce en particulier à l'aide que je reçois dans ce forum et dans stack overflow.
    Bon dimanche.
    Frédéric

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

Discussions similaires

  1. [MySQL] Question sur les Variables dans une requête php-Mysql
    Par rvtoulon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/02/2012, 12h06
  2. [Toutes versions] Obtenir les paramètres d'une requête depuis une table
    Par jabal64 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/11/2011, 16h54
  3. Réponses: 0
    Dernier message: 12/09/2011, 09h10
  4. envoi de variables vers une page php avec WGET
    Par Othasm dans le forum VBScript
    Réponses: 0
    Dernier message: 20/06/2011, 16h45
  5. [MySQL] Récupérer les variables suite à une requête
    Par naje83 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/04/2007, 16h29

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