Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 16h12   #1
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
Par défaut retour avec .getJSON

Bonjour,

J'aimerais créer une petite API pour mon site, le but serait de permettre à l'utilisateur de, via des méthodes, d'accéder à des résultats de ma base de donnée.

J'ai fait un petit test avec .getJSON() mais je n'arrive pas à récupérer les infos côté client, voici le code:

Côté serveur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
		<script>
			$(function()
			{
				$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id+"&jsoncallback=?", 
					function(data)
					{
						alert('TEST !!!!');
						var res = $.parseJSON(data);
						alert(res.NbRes);
						return (res.NbRes);
					});
			});
		</script>

L'alert ne se lance pas, pourtant sur firebugdans Resau->Reponse j'ai bien ma réponse avec ma page et le résultat en json dedans.

Merci !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 16h18   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
ben normal tu n'as pas un json bien formé en retour
vu que tu fasi un echo avant de je ne sais pas quoi ???
essaye
vu que $test est un string json bien formé
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 18h42   #3
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
En effet j'avais trouvé cette méthode sur un blog mais elle semble inutile.

J'ai changé la méthode et je me suis permit d'éditer le post initial, je peux donner plus de code si l'erreur peut provenir d'ailleurs.

Merci !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 19h35   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Pourquoi fais tu un parseJSON sur un getJSON ?
le retour data dans la fonction est deja un json non ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 23h21   #5
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
Oui je récupère bien des données encodé en JSON mais j'ai cru comprendre que parseJSON permettait de modéliser le résultat en objet.

Car en effet dans mon résultat j'ai beaucoup de "déchets" (du html) et mon JSON se trouve au milieu de tout ça, une illustration:
Code :
1
2
3
4
5
 
<html>
//...
 { NbRes : 10 }
//...
parseJSON (enfin apparemment j'ai comprit de travers ?) me servirait à accéder à ce résultat côté client via une méthode "res.NbRes".

Par ailleurs, le alert de TEST ne se fait pas non plus.
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 09h05   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
SI tu fais un getJSON, ton serveur doit te retourner un stringJSON correcetement formatté et uniquement le string json !!

parseJson n'est pas une fonction magique que va nettoyer le code et recupérer uniquement le JSON !
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 10h44   #7
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
Comment peut-on éviter de retourner tout le html ?

voilà ce que j'ai côté serveur:

Code :
1
2
3
4
5
 
<?php
$nb = 104;
echo json_encode(array('nbRes' => $nb));
?>
Je faisais ce traitement dans une view donc j'avais du code html autour mais j'ai résolu le problème et mon résultat est bien:
et dans "JSON" sur firebug j'ai bien:
Cependant je n'ai toujours pas d'alert qui se lance...

Merci !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 11h26   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Déja si tu as

en php ...

Je ne vois pas pourquoi tu aurais
Citation:
nbRes "10"
dans la console firebug ...

10 != 104

Ensuite montre nous ton code ajax actuel ..
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 11h46   #9
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
Erreur de frappe de ma part, il s'agissait d'un nouveau test, je retrouve bien 104...

Côté serveur j'ai simplement:

Code :
1
2
3
4
<?php
$nb = 104;
echo json_encode(array('nbRes' => $nb));
?>
Que je veux récupérer grâce à mon "jsoncallback" côté client:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
			$(function()
			{
				$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id+"&jsoncallback=?", 
					function(data)
					{
						alert('TEST !!!!');
						var res = $.parseJSON(data);
						alert(res.NbRes);
						return (res.NbRes);
					});
			});
		</script>
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 11h57   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
pourquoi tu le parses ????????????????????????????


Code :
1
2
3
4
5
$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id+"&jsoncallback=?", 
					function(data)
					{
						alert(data.NbRes);
						});
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 12h09   #11
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
J'ai oublié de l'enlever suite à ton explication, cependant j'ai toujours pas d'alert qui s'affiche !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 12h39   #12
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
et le ? à la fin de l'url ?? 'est quoi ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h30   #13
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
ca me permet de récupérer le retour JSON, enfin c'est ce qui était expliqué sur le blog que j'ai vu et si j' l'enlève je ne vois plus mon résultat sous firebug.

Tu as l'air assez surprit de la manière de faire, je me permets de t'envoyer le lien sur lequel j'ai vu ça:
http://www.creatiq.fr/tutoriels/creer-votre-propre-api-77
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h52   #14
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Code :
1
2
3
4
5
6
7
8
$(function() {// AU chargement de la page .
	$.getJSON("http://monsite/api?method=getNbRes&arg1="+title_id,
//tu appelles  la page qui génère le json en lui passant les paramètres
  function(data){ // ici la fonction lancée sur le retour ajax
   alert('TEST !!!!');
   alert(res.NbRes);
  });
});
si cela ne fonctionne pas c'est que la page appelée ne retourne pas un string json .
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 13h59   #15
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
Et la fonction json_encode() de php n'est pas censé faire cela ?

Je sais que je me repette mais dans fireBug j'ai pourtant bien un onglet "JSON" avec;

avec le code côté serveur:
Code :
1
2
3
4
5
 
<?php
        $nb = 104;
        echo json_encode(array('nbRes' => $nb));
?>
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h21   #16
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
A quoi te servent les paramètres que tu passes dans l'url ???

Réduisons ton getJSON à sa plus simple expression :

Code :
1
2
3
4
5
6
7
 
$(function() {
	$.getJSON("http://monsite/api.php",
           function(data){ 
                             alert('TEST !!!!');
                             });
});
as tu un alert avec ça ?

attention à l'extension sur le fichier pointé !
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h28   #17
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
Ces arguments me servent car j'ai simplifié le code mais en réalité je fais appel à des méthodes d'un objet php côté serveur.

En simplifiant le code de cette manière je n'ai toujours pas d'alert, et un résultat JSON dans firebug selon si j'ajoute ou non mon "jsoncallback", exactement la même chose en fait.
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h32   #18
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
tu pointes bien un fichier avec une extension php ???

pous les paramètre évites de les mettres dans l'url et utilises le second param de getJSON
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h36   #19
Membre régulier
 
Inscription : octobre 2010
Messages : 253
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 253
Points : 92
Points : 92
ok pour les paramètres, oui je pointe vers le bon endroit, la preuve est que quand je modifie la valeur de nbRes côté serveur et que je remets mon jsoncallback j'ai bien la bonne valeur dans firebug côté client.
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 14h56   #20
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <title>Nouvelle page 1</title>
<script type='text/javascript'>
 $(function(){
$.getJSON('test.php',{param:"coucou" }, function (data){alert(data.param)} )
})
 </script>
</head>
<body>
</body>
</html>
coté serveur:
Code :
1
2
3
4
<?php
$sendback=$_GET['param'];
echo json_encode(array("param"=>$sendback));
?>
J'ai bien le coucou ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web