p
u
b
l
i
c
i
t
é
publicité

Discussion: valeur de getJson [AJAX]

  1. #1
    Invité régulier
    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 : 5
    Points
    5

    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
    4 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

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

    Informations forums :
    Inscription : février 2009
    Messages : 4 930
    Points : 18 758
    Points
    18 758
    Billets dans le blog
    13

    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();
    	});
     
    });

  3. #3
    Responsable Développement Web


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

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

    Informations forums :
    Inscription : juin 2008
    Messages : 23 788
    Points : 92 277
    Points
    92 277
    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
    Invité régulier
    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 : 5
    Points
    5

    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