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 :

Récupérer plusieurs résultats d'une requête php


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut Récupérer plusieurs résultats d'une requête php
    Bonjour,

    coté serveur la réponse à une requete AJAX est
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $response = array('image_titre' => $image_titre, 'image_desc' => $image_desc);
    echo json_encode($response)

    je voudrais pouvoir récupérer la réponse image_titre pour remplir un champ de formulaire et la réponse image_desc pour remplir un autre champs du même formulaire.

    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
    // Code ajax 
    function showResult(str)
    {
    	var xmlhttp=new XMLHttpRequest();
     
    	xmlhttp.onreadystatechange=function()
    	{
    		if (xmlhttp.readyState === XMLHttpRequest.DONE)
    		{
    			if (xmlhttp.status === 200)
    		 	{
    				// C'est là que je coince !!!!!
    				document.getElementById("titre").value=xmlhttp.responseText;
    				document.getElementById("desc").value=xmlhttp.responseText;
    			} 
    			else
    			{
    				alert('Il y a eu un problème avec la requête.');
    			}
        	        }
      	}
     
     	xmlhttp.open("GET","resultat.php?id_img="+str,true);
      	xmlhttp.send(); 
    }
    Je trouvé comment faire pour une seule réponse mais pas pour plusieurs et c'est là que je coince ...
    Quelqu'un peut-il m'aider ?

    merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    tu vas recevoir une réponse qui va être une chaîne de caractères du style de : {"image_titre":"titre de l'image","image_desc":"description de l'image"}.
    Il te faut convertir cette chaîne en un objet via JSON.parse() afin de pouvoir utiliser chaque membre de cet objet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // C'est là que je coince !!!!!
    // conversion chaîne en objet
    const data = data = JSON.parse(xmlhttp.responseText);
    console.log("data :", data); // juste pour voir
     
    // remplissage  des champs correspondants
    document.getElementById("titre").value = data.image_titre;
    document.getElementById("desc").value = data.image_desc;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Merci pour votre réponse.

    en l'état ce code ne fonctionne pas mais votre exemple a orienté mes recherches et j'ai trouvé cela ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // C'est là que je coince !!!!!
     
    // conversion chaîne en objet			
    var obj = JSON.parse(xmlhttp.responseText);
     
    // remplissage des champs correspondants
    document.getElementById("titre").value = obj['image_titre'];
    document.getElementById("desc").value = obj['image_desc'];
    ... sur https://www.w3schools.com/js/js_json_parse.asp et là cela fonctionne,

    Merci

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut

    Citation Envoyé par NoSmoking
    const data = data = JSON.parse(xmlhttp.responseText);
    il y a un data = de trop sur cette ligne, toutes mes confuses

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Effectivement votre code fonctionne aussi.

    mais pourquoi cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log("data :", data); // juste pour voir
    cela fonctionne aussi sans

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    cela fonctionne aussi sans
    normal, il s'agit de la console du navigateur accessible via la touche F12, cela permet de déboguer ton code et de voir ce qui se passe entre autres fonctionnalités.

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

Discussions similaires

  1. [VBA] Récupérer plusieurs résultats dans un recordset
    Par GarsDuCalvados dans le forum VBA Access
    Réponses: 6
    Dernier message: 29/11/2006, 09h41
  2. retour recursif de plusieurs resultat via une procedure
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/06/2005, 08h47
  3. recuperer ler resultat d une procedure stockée
    Par Nadaa dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/08/2004, 08h45
  4. Réponses: 19
    Dernier message: 01/04/2004, 14h41
  5. plusieurs resultats de fonctions
    Par sos dans le forum C
    Réponses: 4
    Dernier message: 29/02/2004, 17h18

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