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 :

Récupérer 3 données sur 1 URL en Ajax


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut Récupérer 3 données sur 1 URL en Ajax
    Bonjour à tous,

    J'ai un bout de script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $.ajax({   
            url: 'verification.php?pseudo=<? echo "$pseudo"; ?>&play=$picture1',   
            success: function(data) {   
                (..)
       }   
        });
    J'aimerais récupérer depuis la page verification.php plusieurs données, par exemple $donnee1, $donnee2 et $donnee3

    Comment pourrais je procéder ?

    Merci par avance.
    Antoine

  2. #2
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Dans ton code JavaScript tu déclares ta requete Ajax comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $.ajax({
    		type: "POST",
    		url: 'verification.php',		
    		success : function(data) {
    (..)
    },
    		data: 'pseudo=PSEUDO&play=PICTURE', //Tu es en JAVASCRIPT les données PSEUDO et PICTURE sont des valeurs JAVASCRIPT et non PHP comme le montre ton exemple.
    	});
    Dans ton code PHP tu récupère tes valeurs comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $donnee1 = $_POST['pseudo'];
    $donnee2 = $_POST['play'];
    ...
     
    ?>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Merci pour le tuyau.

    Cependant, je dois avoir mal formulé ma question car l'objectif est de récupérer en javascript/ajax PLUSIEURS données qui PROVIENNENT de ma page PHP.

    Comment puis je faire ?

    Merci.
    Antoine

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ceci devrait t'aider à comprendre ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    success : function(data) {
    alert(data)
    }
    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 !

  5. #5
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    Citation Envoyé par ingeniomatique Voir le message
    Merci pour le tuyau.

    Cependant, je dois avoir mal formulé ma question car l'objectif est de récupérer en javascript/ajax PLUSIEURS données qui PROVIENNENT de ma page PHP.

    Comment puis je faire ?

    Merci.
    Antoine
    J'avais effectivement pas compris....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    $.ajax({
    		type: "POST",
    		url: 'verification.php',
                    dataType: "json", // ou XML, HTML, TEXT.... Perso j'aime mieux le JSON	
    		success : function(data) {
    alert(data);
    alert(data.retourJSON);
    alert(data.retourJSON.donnee1);
    },
    		data: 'pseudo=PSEUDO&play=PICTURE' 
    	});

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $donnee1 = $_POST['pseudo'];
    $donnee2 = $_POST['play'];
    ...
     echo '{"retourJSON": [{"donnee1": "'.$donnee1.'", "donnee2": "'.$donnee2.'", "donnee3": "'.$donnee3.'"}]}'
    ?>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Je viens d'effectuer de multiples tests avec finalement le script suivant :

    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
    <script type="text/javascript">  
    $(function(){
     
     $("#conteneur img" ).click(function(){
     $picture1 = $(this);
     
     $.ajax({   
     		type: "POST",
            url: 'jeup4verif.php',
    		dataType: "json", 
            success: function(data) { 
    alert(data);
    alert(data.retourJSON);
    alert(data.retourJSON.donnee1);
                $picture1.attr('src', data.retourJSON.donnee1);
    			document.getElementById('tour').innerHTML.replace(document.getElementById('tour').innerHTML,'data.retourJSON.donnee3');
    			document.getElementById('final').innerHTML.replace(document.getElementById('final').innerHTML,'data.retourJSON.donnee2');
    			if (data.retourJSON.donnee3!='') {
    clearInterval(monInterval);
    }  
            }  
        }); 
     });
    });
    </script>
    J'ai volontairement simplifié le fichier PHP jeup4verif.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo '{"retourJSON": [{"donnee1": "test", "donnee2": "test2'", "donnee3": "test3"}]}';
    ?>

    Le souci est que cela ne fonctionne pas.
    Une seule ALERT apparaît et donne "null".

    Merci par avance de votre aide.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    En supposant que le ' au milieu du JSON soit une faute de frappe, tu ferais bien de comprendre comment tu as construit celui-ci : ton objet n'a qu'une seule propriété, retourJSON qui a pour valeur un tableau à un élément composé d'un objet (ce qui est un peu tordu au passage...) donc pour accéder aux données, il faut préciser le rang auquel tu veux accéder dans le tableau, même s'il n'y en a qu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(data.retourJSON[0].donnee1);
    Mais tu ferais mieux de renvoyer simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"donnee1": "test", "donnee2": "test2", "donnee3": "test3"}
    et d'y accéder avec
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Bonjour,

    Je viens donc de tester sur jeup4verif.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '{"donnee1": "test", "donnee2": "test2", "donnee3": "test3"}';
    Et le code devient :

    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
    <script type="text/javascript">  
    $(function(){
     
     $("#conteneur img" ).click(function(){
     $picture1 = $(this);
     
     $.ajax({ 
            url: 'jeup4verif.php?pseudo=<? echo "$pseudo"; ?>&play=$picture1',
            success: function(data) { 
    alert(data.donnee1);
    alert(data.donnee2);
    alert(data.donnee3);
                $picture1.attr('src', data.data.donnee1);
    			document.getElementById('tour').innerHTML.replace(document.getElementById('tour').innerHTML,'data.donnee3');
    			document.getElementById('final').innerHTML.replace(document.getElementById('final').innerHTML,'data.donnee2');
    			if (data.donnee3!='') {
    clearInterval(monInterval);
    }  
            }  
        }); 
     });
    });
    </script>

    J'ai bien 3 alertes qui s'affichent.

    Mais au lieu d'afficher TEST1, TEST2 et TEST3, j'ai 3 fois "undefined".

    Merci encore par avance.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Essaye comme ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '{donnee1: "test", donnee2: "test2", donnee3: "test3"}';
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    De la même manière cela donne 3 fois UNDEFINED...
    Merci par avance.

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Euh oui mais dans ton dernier exemple
    a disparu
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Il vient de réapparaître comme par magie (sans rien modifier d'autre) :

    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
    <script type="text/javascript">  
    $(function(){
     
     $("#conteneur img" ).click(function(){
     $picture1 = $(this);
     
     $.ajax({ 
            url: 'jeup4verif.php?pseudo=<? echo "$pseudo"; ?>&play=$picture1',
     		dataType: "json",
            success: function(data) { 
    alert(data.donnee1);
    alert(data.donnee2);
    alert(data.donnee3);
                $picture1.attr('src', data.data.donnee1);
    			document.getElementById('tour').innerHTML.replace(document.getElementById('tour').innerHTML,'data.donnee3');
    			document.getElementById('final').innerHTML.replace(document.getElementById('final').innerHTML,'data.donnee2');
    			if (data.donnee3!='') {
    clearInterval(monInterval);
    }  
            }  
        }); 
     });
    });
    </script>
    Mais cette fois ci... AUCUNE alerte ne s'affiche. Rien.

  13. #13
    Membre éclairé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 702
    Par défaut
    C'est sans doute une idée à la con mais as-tu essayé de remplacer data par autre chose car j'ai peur qu'il confonde le paramètre data avec la variable de ton retour.

    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
     
    <script type="text/javascript">  
    $(function(){
     
     $("#conteneur img" ).click(function(){
     $picture1 = $(this);
     
     $.ajax({ 
            url: 'jeup4verif.php?pseudo=<? echo "$pseudo"; ?>&play=$picture1',
     		dataType: "json",
            success: function(retourJSON) { 
    			alert(retourJSON.donnee1);
    			alert(retourJSON.donnee2);
    			alert(retourJSON.donnee3);
                $picture1.attr('src', retourJSON.donnee1);
    			document.getElementById('tour').innerHTML.replace(document.getElementById('tour').innerHTML,'retourJSON.donnee3');
    			document.getElementById('final').innerHTML.replace(document.getElementById('final').innerHTML,'retourJSON.donnee2');
    			if (retourJSON.donnee3!='') {
    clearInterval(monInterval);
    }  
            }  
        }); 
     });
    });
    </script>
    Citation Envoyé par Bovino Voir le message
    ... ton objet n'a qu'une seule propriété, retourJSON qui a pour valeur un tableau à un élément composé d'un objet (ce qui est un peu tordu au passage...)

    En effet sur ce coup je ne suis pas droit du tout. Mais c'est la magie du copier coller d'un de mes scripts j'ai pas corrigé .

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Non ce n'est toujours pas ça.

    Toujours 3 alert "undefined"...

    Merci par avance

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Juste pour vérifier un truc, dans ta page HTML générée, tu n'as pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url: 'jeup4verif.php?pseudo=<? echo "$pseudo"; ?>&play=$picture1'
    j'imagine, ça donne quoi en HTML ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    En HTML ça donne jeup4verif.php?pseudo=foxbond&play=$picture1 ("foxbond" étant mon pseudo)

    Effectivement, y'a un souci avec le $picture1 qui devrait être mon ID d'image cliquée ( $picture1 = $(this); )

  17. #17
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ah ben voilà
    C'était là depuis le début, mais j'avais pas fait gaffe !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $("#conteneur img" ).click(function(){
     $picture1 = $(this);
    $picture1 correspond à la balise HTML, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jeup4verif.php?pseudo=foxbond&play=$picture1
    n'envoie aucune valeur pour le paramètre play
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Ben comment faire pour envoyer $(this) pour le paramètre play alors ?

    Par ailleurs je ne suis pas certain que cela résolve le souci d'undefined qui semble être indépendant.

  19. #19
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par ingeniomatique Voir le message
    Ben comment faire pour envoyer $(this) pour le paramètre play alors ?
    Ca dépend, quelle valeur comptes-tu récupérer ?
    Par exemple, si c'est le src, il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $picture1 = $(this).src;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 153
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $picture1 = $(this).id;
    (c'est la balise ID qui m'intéresse)

    Ca ne marche pas, en HTML ça m'affiche toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jeup4verif.php?pseudo=foxbond&play=$picture1

Discussions similaires

  1. Récupérer des données sur base URL
    Par Horyuji dans le forum Langage
    Réponses: 4
    Dernier message: 22/11/2013, 01h43
  2. Récupérer des données sur 3 tables..
    Par sanaell dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 09/05/2007, 20h03
  3. Réponses: 3
    Dernier message: 28/01/2007, 19h25
  4. récupérer des données sur une clef USB
    Par mullger dans le forum Périphériques
    Réponses: 6
    Dernier message: 25/09/2006, 18h38
  5. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22

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