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 26/07/2011, 14h21   #1
Candidat au titre de Membre du Club
 
Femme Julie V.
Développeur Web
Inscription : avril 2009
Messages : 36
Détails du profil
Informations personnelles :
Nom : Femme Julie V.
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2009
Messages : 36
Points : 10
Points : 10
Par défaut Utilisation du dataType json

Bonjour,

J’utilise la fonction $.ajax de jQuery et j’ai un souci avec le datatype : json.

J'ai un fichier "traitement.php" qui me retourne un objet json comme celui-là :

[{"ville" : "Montreal"},{"ville" : "Toronto"}]

J'aurai besoin de récupérer chacune de ces valeurs. J'ai donc fait la fonction suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
jQuery(document).ready(function() {    
            $.ajax({
                    type: "POST",
                    url : "traitement.php",
                    dataType: 'json',
                    success:function(data){
                        $.each(data, function(key, value){
                        //numk = data.numk;
                        alert(key+"--"+value);
                        });
                    },
                    error:function(msg){
                            alert( "Error !: " + msg );
                    }
            });
        });
Le souci, c'est qu'il ne me récupère pas le "data" et entre directement dans le error. Par contre, si je supprime la ligne "dataType: 'json'," de ma fonction, je récupère bien mes données en mode text (normal !!).
Je voudrais savoir s’il y a un souci au niveau du format json ? ou s’il manque un élément dans la fonction ajax que j'aurai raté ?

Merci d’avance
Piapia78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h42   #2
Nouveau Membre du Club
 
Inscription : mars 2009
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 57
Points : 29
Points : 29
Code :
1
2
3
4
5
6
 
error: function(jqXHR, textStatus, errorThrown)
{
	alert(textStatus);
	alert(errorThrown);
}
a tu une parse error avec cette fonction?
Setsuna_00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 15h41   #3
Candidat au titre de Membre du Club
 
Femme Julie V.
Développeur Web
Inscription : avril 2009
Messages : 36
Détails du profil
Informations personnelles :
Nom : Femme Julie V.
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2009
Messages : 36
Points : 10
Points : 10
J'ai bien un parse error.

Dans firebug, je vois que le fichier traitement.php se charge. Ensuite, il affiche l'alerte parse error et seulement après il m'affiche les informations json dans le post. Les informations du post ne devraient pas s'afficher avant ?
Piapia78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h24   #4
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Depuis ton fichier PHP, tu as bien mis un header de json ?

Code :
header('Content-type: application/json');
Si tu indiques explicitement dataType: 'json', il s'attend à recevoir un vrai json (par qu'une string au hasard) avec le header qui va avec.

Il est normal que ceci fonctionne sans l'indiquer. Quand tu n'indiques rien, il va "évaluer" et essayer de deviner ce que c'est. Comme ton json est bon, il le comprend ainsi.

Néanmoins, il est bien de l'indiquer, ça évite l'évaluation (qui peut produire des trucs bizarre) et ça économise des ressources.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h33   #5
Candidat au titre de Membre du Club
 
Femme Julie V.
Développeur Web
Inscription : avril 2009
Messages : 36
Détails du profil
Informations personnelles :
Nom : Femme Julie V.
Localisation : Canada

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2009
Messages : 36
Points : 10
Points : 10
Je ne l'avais pas indiqué ! Maintenant, cela fonctionne...

Merci beaucoup de ton aide
Piapia78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web