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 :

Lire une erreur php dans un résultat de requête en json [AJAX]


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 155
    Par défaut Lire une erreur php dans un résultat de requête en json
    Bonjour

    J'utilise une requête $.ajax qui appelle un script php depuis un formulaire, et récupère un json :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $.ajax ({
    	url: 'monphp.php',
    	type: 'post',
    	data: $(this).serialize(),
    	dataType: 'json',
    	success: function (res)
    	{
    		//document.getElementById('Result').innerHTML = res;
    		document.getElementById('Result').innerHTML = formatJson (JSON.stringify(res));
    	}
    });
    Si le php renvoie une erreur la donnée récupérée n'est plus un json mais une string, et dans ce cas la fonction sucess n'est pas déclenchée.

    Comment faites vous pour afficher l'erreur dans ce cas ?
    C'est assez chiant : je suis obligé d'aller la lire dans firebug au milieu des balises, et sur ma page rien ne me dit qu'il y a une erreur (sauf si F5 avant et que la page reste blanche).

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    c'est une erreru de conception !

    si tu as le retour devra être un json

    tu peux alors lui donner cette former :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"err":"message d'erreur"}
    et sur le success teste l'existence et récupérer date.err ...


    sinon tu devras passer par le onerror de ton ajax ...
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 155
    Par défaut
    et sur le success teste l'existence ...
    Ok, alors finalement j'ai choisi cette solution (trouvé ici), c'est la plus simple et ça a l'air de marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $.ajax ({
    	url: 'parse.php',
    	type: 'post',
    	data: $(this).serialize(),
    	dataType: 'json', // si parse.php renvoie un json_encode
    	success: function (res)
    	{
    		document.getElementById('Result').innerHTML = formatJson (JSON.stringify(res));
    	},
    	error: function (xhr, ajaxOptions, thrownError)
    	{
    		document.getElementById('Result').innerHTML = xhr.responseText;
    	}
    });
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    sinon tu devras passer par le onerror de ton ajax ...
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    error: function (xhr, ajaxOptions, thrownError)
    	{
    		document.getElementById('Result').innerHTML = xhr.responseText;
    	}
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 155
    Par défaut
    Oui c'est d'ailleurs le 'onerror' dont tu parlais qui m'a mis sur la piste (j'avais juste besoin de la syntaxe).

    Merci bien

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

Discussions similaires

  1. Lire une ligne et mettre le résultat dans des variables
    Par www.rubis dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 06/05/2014, 15h23
  2. [PHP 5.3] cURL : erreurs PHP dans le résultat
    Par K1T5UN3 dans le forum Langage
    Réponses: 3
    Dernier message: 13/07/2012, 15h45
  3. Lire une variable php dans un script xml
    Par masterkenobi dans le forum Langage
    Réponses: 9
    Dernier message: 27/10/2010, 13h15
  4. Lire une fonction PHP dans du JS
    Par cKmel dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 03/02/2009, 11h31
  5. Lire une page php dans un cadre
    Par _SamSoft_ dans le forum Flash
    Réponses: 18
    Dernier message: 06/05/2007, 14h25

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