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 :

Fonctions success: et error:


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Par défaut Fonctions success: et error:
    Bonjour,

    J'enregistre un formulaire avec Jquery de façon basique. J'ai ma page du form avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $('#monForm').on('submit', function() {
    	$.ajax({
                url: $(this).attr('action'),
                type: $(this).attr('method'),
    		data: {
    		nom: $('#nom'),
    		prenom: $('#prenom').val(),
    		email: $('#email').val()
    	    },
                dataType: 'json'		 
            });
            return false;
    });
    Et ma page php qui insert dans la base. Ca fonctionne, sauf que je fais le test success sur la page php avec :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $array['reponse'] = $reponse;
    if(json.reponse == true) {
    	echo 'Tout est bon';
    } else {
    	echo 'Une erreur est survenue';
    }
    Ca fonctionne donc mais je pense pas que ce soit la meilleur façon de faire.
    Si je mets
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_encode($array);
    dans ma page php et que je rajoute sur ma page form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    success: function(data){  
    	alert('ok');  
    },
    error: function(data) { 
    	alert('PAS ok');  
    }
    Ca passe jamais ici. L'enregistrement se fait dans la base mais j'ai pas d'alerte.
    J'ai essayé avec ca aussi mais sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    success: function(data) {
        if(!data.reponse == true) {
        alert('Tout est bon');
        } else {
             alert('Erreur : '+ json.reponse);
        }
    }
    Merci de votre aide

  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
    regarde dans ta console firebug dans l'onglet xhr ce que tu reçois en réponse

    pour moi ton serveur ne retourne pas string json correctement formaté d'ou le fait que tu ne passe pas dans le success
    as tu testé un alert sur le onerror
    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
    Rédacteur

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Tonii
    Ca fonctionne, sauf que je fais le test success sur la page php avec :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $array['reponse'] = $reponse;
    if(json.reponse == true) {
    	echo 'Tout est bon';
    } else {
    	echo 'Une erreur est survenue';
    }
    Ca fonctionne donc mais je pense pas que ce soit la meilleur façon de faire.
    En dehors du fait que la syntaxe du if est curieuse, si tu fais ce type de echo dans ton script PHP, il y a effectivement peu de chances pour que la réponse renvoyée soit un JSON valide...
    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
    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
    ça ne me serait tellement jamais venu à l'esprit des tester un retour d'ajax en php que je suis passé au travers de celle là !!!

    Bien vu oeil de Boeuf Lynx
    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
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Par défaut
    J'ai bien firebug mais je n'ai pas l'onglet XHR de proposé, pourtant j'ai bien la dernière version

    Après pour ce qui est de tester de l'ajax en php oui je reconnais que c'est bizarre mais ça fonctionne puisque je passe bien dans le if et le else dans les deux cas de figure...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $array['reponse'] = $reponse;
    if(json.reponse == true) {
       echo 'Tout est bon';
    } else {
       echo 'Une erreur est survenue';
    }
    Je n'ai pas déclaré d'objet XHR, est-ce pour ça que j'ai pas de retour côté jquery avec success: et error: ?

  6. #6
    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
    Tu as bien declaré un objet xhr vu que tu fais un ajax ...

    Tu n'as pas du lire le post de Bovino !

    que fait un echo dans ton success ...
    jquery = javascript => coté client

    jette un oeil sur le code html / js généré tu comprendras mieux
    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 !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Par défaut
    Désolé je mets du temps à répondre.

    Non je n'ai pas déclaré d'objet XHR, je fais de l'ajax avec Jquery, est-ce déclaré de base ?
    Mais je n'ai pas de ligne de code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xhr = new XMLHttpRequest();
    MA requette s'éxecute bien, le test aussi mais à priori ce n'est pas une forme très "académique" et ça m'embête....

    Je vais voir ce que fait l'echo côté client.

Discussions similaires

  1. [AJAX] Avoir dans la fonction success des données et du html
    Par alaninho dans le forum jQuery
    Réponses: 4
    Dernier message: 26/06/2014, 10h27
  2. [DAX] fonction filter circular error
    Par Skootman dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/06/2014, 14h30
  3. [AJAX] Fonction success avec AJAX
    Par prince_rick dans le forum jQuery
    Réponses: 11
    Dernier message: 13/12/2013, 15h46
  4. Réponses: 1
    Dernier message: 29/12/2010, 10h03
  5. [Turbo Pascal] Fonction de hachage : Error 200 division par zero
    Par Hipou dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 05/05/2009, 23h26

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