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 :

Affichage de données renvoyées par AJAX (json)


Sujet :

AJAX

  1. #1
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut Affichage de données renvoyées par AJAX (json)
    Bonjour,

    dans la continuité de mon application, j'ai un formulaire pour la modification des propriétés d'un chantier. Le formulaire, présent dans une modale, est le suivant:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <FORM method="POST" action="Scripts/chantier_update.php">
    	Numéro: <input type="text" name="numChantier" id="numChantier" readonly="readonly"> <br>
    	Nom: <input type="text" name="nomChantier" > <br>
    	Information: <input type="textarea" name="infos" > <br>
    	DICT: <input type="file" name="dict" > <br>
    	<input type="submit" value="Confirmer">
    </FORM>

    Présent en amont, une liste déroulante avec l’événement "onChange" dessus envoyant sa value à une fonction ajax. Celle-ci fait appelle à un script (en passant "num") qui me permet de piocher dans la bdd les informations du chantier numéro "num", elles sont ensuite encodées en json. Jusque là tout va bien mais pour afficher ces données, rien ne va plus!

    La fonction:

    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
     
    function Change(value){ //Appelle d'un script PHP permettant la récupération des données
    	//On récupère 
    	var num = value; //La variable 'num' récupère la valeur de la liste déroulante
    	document.getElementById('numChantier').value = num; //affiche le num du chantier dans le formulaire grâce à la 'value' de la balise <select>
    	$.ajax({
    		type: "POST", //méthode utilisé
    		url: "Scripts/chantier_retrieve.php", //fichier à appeler
    		data: 'num='+ num, //données envoyées
    		//dataType: 'html', //Format des données
    	})
    	.done(function (data, textStatus, jqXHR) {
    	        console.log(data); //affiche les données renvoyées 
    	        $("input[name='nomChantier']").val(data.nom); //affiche le nom du chantier
     	        $("input[name='infos']").val(data.infos);
    	})
    	.fail(function (jqXHR, textStatus, errorThrown) {
    		console.error(textStatus, errorThrown); // affiche l’erreur dans la console
    	});
    }
    Je me sert de ce même script pour différents formulaires et tout va pour le mieux.
    Vous l'aurez compris, les données ne s'affichent pas dans le formulaire. Pourtant elles sont correctement renvoyées:

    Nom : Capture.JPG
Affichages : 846
Taille : 15,3 Ko

    Une idée d'où pourrait provenir cette "non-volonté" de m'afficher les données ? Merci d'avance!

    Cordialement,
    Skunka.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Dans ta console, que renvoient $("input[name='nomChantier']") et $("input[name='infos']") ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Je ne savais pas réellement comment faire ce que tu m'as demandé, alors j'ai écrit ça dans .done():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    console.log($("input[name='nomChantier']"));
    console.log($("input[name='infos']"));
    Pour obtenir ceci dans ma console:

    Nom : Capture.JPG
Affichages : 875
Taille : 33,6 Ko

    Je ne sais pas si c'est ce que tu attendais, si ce n'est pas le cas, je te laisse me donner plus de précision ^^

    Cordialement,
    Skunka.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    C’est bizarre… La seule chose que je peux dire, c’est que tu as deux input[name='nomChantier'] dans la page, mais tu devrais quand même voir les données. Je ne sais pas où est le problème :S

    Sinon, pour utiliser la console en mode interactif, c’est simple : il suffit de cliquer en face du prompt, souvent c’est un symbole > ou ». Là tu peux entrer du code JavaScript, qui sera exécuté dans le contexte de ta page.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre habitué Avatar de Skunka
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2018
    Messages : 135
    Points : 158
    Points
    158
    Par défaut
    Me voila de retour! Je n'avais pas pris le temps de me remettre sur ce problème, je me devais d'avancer le reste du projet, mais j'ai finalement décidé de le résoudre.
    J'ai déduis que les données renvoyées par mon script n'étaient pas correctement décodés, alors, au lieu d'encoder les données en json dans le script, je les ai stockés dans une chaîne de caractère:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$resultat =  $nom . "*" . $infos ."*";
    	echo $resultat;

    Ma fonction ajax de retour a ensutie pris cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    .done(function (data, textStatus, jqXHR) {
    		    console.log(data); //affiche les données renvoyées 
    		    var tableau = data.split("*");
    		    $("input[name='nom']").val(tableau[0]); //affiche le nom du chantier
    		    $("textarea[name='infos']").val(tableau[1]);
    		})
    Je récupère donc la chaîne de caractère que je split ensuite dans un tableau avant de les attribuer dans l'ordre aux champs correspondant. On constate que cela fonctionne:

    Nom : Capture.JPG
Affichages : 894
Taille : 30,9 Ko

    Mon formulaire se remplis, le détournement du problème est une réussite!
    Le problème est maintenant résolu,
    Cordialement,
    Skunka.
    Traverse les rues ...

    Git: https://github.com/BlueSkunka

    Débutant à vie

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/04/2013, 17h15
  2. [AJAX] IE me coupe ume partie du code HTML renvoyé par AJAX
    Par C_C dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/01/2008, 15h52
  3. [ Problème d'affichage de données ligne par ligne ]
    Par Arkoze dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/06/2007, 09h45
  4. Réponses: 2
    Dernier message: 08/10/2006, 11h44

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