Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/02/2013, 17h51   #1
coucoudjam
Invité régulier
 
Homme
Inscription : 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 :
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 :
1
2
3
4
function fill(thisValue) {
     $('#title').val(thisValue);
     setTimeout("$('#suggestions').fadeOut();", 600);
     vachercher();
Qui appelle à son tour la fonction "vachercher()"
Code :
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 :
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 :
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 !
coucoudjam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 00h41   #2
danielhagnoul
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 846
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 62
Localisation : Belgique

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

Informations forums :
Inscription : février 2009
Messages : 3 846
Points : 14 343
Points : 14 343
Code html :
1
2
3
4
5
<input id="title" type="text" size="80" value="">
 
<div id="retour">
	<i>vide</i>
</div>

Code javascript :
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();
	});
 
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

plugin dialogModal

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 09h48   #3
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 118
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 18 118
Points : 64 842
Points : 64 842
Citation:
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 :
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 10h40   #4
coucoudjam
Invité régulier
 
Homme
Inscription : 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
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 :
header("Content-type: application/json");
Et lorsqu'il me construit mon retour
Code :
1
2
3
4
5
6
7
$json= json_encode($retour);
 
if (isset($_GET['callback'])) {
     echo $_GET['callback'].'('.$json.');';
} else {
     echo $json;
}
Merciiiiiiii
coucoudjam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h42.


 
 
 
 
Partenaires

Hébergement Web