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 :

valeur de getJson [AJAX]


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 18
    Points : 13
    Points
    13
    Par défaut valeur de getJson
    Bonjour,

    Après m'être pris la tête toute la journée sur ce truc, je me tourne vers vous...

    Alors voilà, j'ai dans un index.html 2 champs
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input type="text" size="80" value="" id="title" onkeyup="suggest(this.value);" onblur="fill();" class=""/>
    <div id="retour">
     <i>vide</i>
    </div>
    Le premier champ (<input> est un champ dynamique et fonctionne bien), lorsque je clique sur une des valeurs suggérées, je déclenche l'événement "onblur" et voici le code de ma fonction "fill()"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function fill(thisValue) {
         $('#title').val(thisValue);
         setTimeout("$('#suggestions').fadeOut();", 600);
         vachercher();
    Qui appelle à son tour la fonction "vachercher()"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function vachercher(){
    	$.post('AS_Code2.php', {identifiant: $('#title').val()}, function(data){
    		$('#retour').hide();
    		$('#retour').html('')
    			.append('<b>Json</b> : '+data+'<br/>')
    			.append('<b>Titre</b> : '+data.tvo+'<br/>')
    		$('#retour').fadeIn();
    	}, "json");}
    Ce qui me retourne :

    Json : [object Object],[object Object]
    Titre : undefined


    Bref, je n'arrive pas à utiliser mon Json... Donc j'essaye avec la fonction $.getJSON et là...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function vachercher(){
    	$.getJSON('AS_Code2.php', {identifiant: $('#title').val()}, function(data){
    		$('#retour').hide();
    		$('#retour').html('')
    			.append('<b>Json</b> : '+data+'<br/>')
    			.append('<b>Titre</b> : '+data.tvo+'<br/>')
    		$('#retour').fadeIn();
    	});
    }
    Ben rien, ma DIV reste avec sa valeur par défaut "vide".

    Puis j'essaye simplement avec $.post tout court
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function vachercher(){
    	$.post('AS_Code2.php', {identifiant: $('#title').val()}, function(data){
    		$('#retour').hide();
    		$('#retour').html('')
    			.append('<b>Json</b> : '+data+'<br/>')
    			.append('<b>Titre</b> : '+data.tvo+'<br/>')
    		$('#retour').fadeIn();
    	});
    }
    Et là, ça me retourne (presque) bien ce que je veux :

    Json : [{"tvf":"Gintama"},{"tvo":"Gintama"}]
    Titre : undefined


    Je disais "presque" car comme vous le voyez, je n'arrive absolument pas à utiliser mes champs...

    Un petit coup de pouce me ferait du bien, je commence à être court d'idées...

    Merci !

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input id="title" type="text" size="80" value="">
     
    <div id="retour">
    	<i>vide</i>
    </div>

    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    $( function(){
     
    	function vachercher(){
    		$.post( 'AS_Code2.php', { "identifiant" : $( '#title' ).val() }, function( data ){
     
    			$('#retour')
    				.hide()
    				.html( '<b>Json</b> : ' + data + '<br/><b>Titre</b> : ' + data.tvo + '<br/>' )
    				.fadeIn();
     
    		}, "json");
    	}
     
    	function fill( thisValue ){
    	     $( '#title' ).val( thisValue );
     
    	     setTimeout( function(){
    	     	$( '#suggestions' ).fadeOut();
    	     }, 600 );
     
    	     vachercher();
    	}
     
    	$( "#title" ).on( "keyup", function(){
    		suggest( this.value );
    	});
     
    	$( "#title" ).on( "blur", function(){
    		fill();
    	});
     
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Json : [{"tvf":"Gintama"},{"tvo":"Gintama"}]
    Tu vois bien que la réponse reçue est un tableau (de type Array) et non un objet.
    Si tu veux accéder aux objets contenus dans ce tableau, il faut chercher leur rang :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function vachercher(){
    	$.post('AS_Code2.php', {identifiant: $('#title').val()}, function(data){
    		$('#retour').hide();
    		$('#retour').html('')
    			.append('<b>Json</b> : '+data+'<br/>')
    			.append('<b>Titre</b> : '+data[1].tvo+'<br/>')
    		$('#retour').fadeIn();
    	}, "json");}
    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

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Merci danielhagnoul, le code est tout beau tout propre comme ça !
    Seulement, mon niveau n'est vraiment pas suffisant pour comprendre pourquoi cela ne fonctionne plus avec ton code...

    Et merci Bovino, ça fonctionne évidemment mieux comme ça...
    Mais tu sais pourquoi la fonction "$.getJSON" ne me renvoie rien ?!??
    Car dans mon 'AS_Code2.php', j'ai bien mis en première ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-type: application/json");
    Et lorsqu'il me construit mon retour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $json= json_encode($retour);
     
    if (isset($_GET['callback'])) {
         echo $_GET['callback'].'('.$json.');';
    } else {
         echo $json;
    }
    Merciiiiiiii

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

Discussions similaires

  1. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  2. Recherche fonctions rendant la valeur
    Par Bertrand_Collet dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/11/2002, 12h05
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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