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

AJAX Discussion :

Aucun retour en cas de succès de la requête


Sujet :

AJAX

  1. #1
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut Aucun retour en cas de succès de la requête
    Bonjour,
    je rencontre un probléme depuis deux jours.
    j'exécute une requête ajax qui s'enregistre bien dans la base de données, mais lors du retour en cas de succès de l'exécution de la requête rien n'est renvoyé et j'ai même plusieurs fois vérifier les variables qui sont correctes. merci de votre aide

    ci-dessous le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    $(document).ready(function(){
                var form = ('#form'),
                    corptab = ('#corptab');
     
    //            console.log('ok');
                $(form).on('submit', function(e){
                    e.preventDefault();
     
                    // Récupération des noms de input comme variables
                    var data = $(this).serialize();
                    var url = $(this).attr('action');
     
                    $.ajax({
                        type: 'POST',
                        url: url,
                        data: data,
                        dataType: 'json',
                        success: function(response){
                            alert(response);
                            if(response.success){
                                alert(response);
                                console.log(response);return false;
                                $(corptab).prepend('<tr><td>'+response.nature+'</td><td>'+response.ope+'</td><td>'+response.val+'</td><td>'+response.lib+'</td><td>'+response.mont+'</td><td>'+response.ref+'</td><td>'+response.compte+'</td></tr>');
                            }
                        }
                    });
     
                });
            });

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    "Aucun retour en cas de succès" : ça peut se traduire par.... "Erreur", non ?



    On peut afficher les erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $.ajax(...)
      .done(function() {
        alert( "success" );
      })
      .fail(function() {
        alert( "error" );
      })
      .always(function() {
        alert( "complete" );
      });
    Deprecation Notice:
    The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0.
    You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    le problème c'est que je ne reçois rien comme erreur ou affichage des console.log() dans l'inspecteur. en d'autres termes aucune réaction et pourtant les informations s'enregistre bien dans la base de données.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il faut récupérer les erreur au retour, dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      .fail(function() {
        alert( "error" );
      })
    Si je donne un lien, ce n'est pas pour rien.
    Il faut cliquer, et LIRE.

    jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});

    An alternative construct to the error callback option, the .fail() method replaces the deprecated .error() method. Refer to deferred.fail() for implementation details.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Voici la réponse que j'ai dans mon navigateur :

    {"success":"Ecriture bancaire enregistr\u00e9e avec succ\u00e8s","compte":"AUDIBICI","nature":"03","val":"2018-10-21","ope":"2018-10-21","ref":"","lib":"pzsk,poojoijcdjjkjkd","mont":"14000000"}

  6. #6
    Invité
    Invité(e)
    Par défaut
    OK.

    Donc, ce n'est PAS une erreur de retour !
    Tu reçoit bien quelque chose.

    Il faut donc voir ailleurs dans le code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                var form = ('#form'),
                    corptab = ('#corptab');
    Il manque un var.
    Mais je doute que ce soit ça, si ?


    N.B. On est d'accord que tu as pensé à enlever le return false; de ton code ?

  7. #7
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    mes id sont au bon nom, mon code jquery est dans la même page que ma page php mais je ne pense pas que ce soit la cause. j'utilise aussi un template je me demande si ce n'est pas une incompatibilité avec un autre script. le code est sensé ajouter la ligne saisie au tableau en dessous. mais après enregistrement dans la base rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form action="SaisieEcritAJAX.php" method="post" id="form" class="form-horizontal">
                                <fieldset class="content-group">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <div class="panel panel-flat">
                            <table class="table table-bordered table-hover datatable-highlight small">
                                <thead>
                                <tr class="bg-green-600">
                                    <th class="text-bold" width="10px">CIB</th>
                                    <th class="text-bold" width="120px">Date opé.</th>
                                    <th class="text-bold" width="120px">Date val.</th>
                                    <th class="text-bold">Libellé</th>
                                    <th class="text-bold" width="120px">Débit</th>
                                    <th class="text-bold" width="120px">Crédit</th>
                                    <th class="text-bold" width="120px">Reférences</th>
                                    <th class="text-bold" width="120px">Compte</th>
                                </tr>
                                </thead>
                                <tbody id="corptab">
     
                                </tbody>
                            </table>
                        </div>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    2 TESTS simples :

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            console.log('<tr><td>'+response.nature+'</td><td>'+response.ope+'</td><td>'+response.val+'</td><td>'+response.lib+'</td><td>'+response.mont+'</td><td>'+response.ref+'</td><td>'+response.compte+'</td></tr>');
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            $(corptab).prepend('<tr><td>COUCOU ?</td></tr>';

  9. #9
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Ci-dessous mon array response.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    function isAjax(){
        return !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
    }
     
    if(isAjax()){
            $response = array(
                'success' => $success,
                'compte' => $compte,
                'nature' => $nature,
                'val' => $val,
                'ope' => $ope,
                'ref' => $ref,
                'lib' => $lib,
                'mont' => $mont
            );
            echo json_encode($response);
            exit;
        }

  10. #10
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Toujours pareil, plus aucune réaction après l'enregistrement dans la base. aucun console.log() ne s'affiche dans l'inspecteur. mais avant l'exécution de la requête oui.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Alors d'où tu as sorti ça ?
    Citation Envoyé par saninx Voir le message
    Voici la réponse que j'ai dans mon navigateur :
    {"success":"Ecriture bancaire enregistr\u00e9e avec succ\u00e8s","compte":"AUDIBICI","nature":"03","val":"2018-10-21","ope":"2018-10-21","ref":"","lib":"pzsk,poojoijcdjjkjkd","mont":"14000000"}
    "dans mon navigateur" : c'est-à-dire ?


    2- As-tu TESTE le fichier PHP SANS passer par Ajax ? = directement dans la barre d'adresse (avec des paramètres $_POST fictifs)

  12. #12
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    non non. comme auparavant l'enregistrement se fait mais aucune réponse en cas de succès. et pourtant il y a succès de l'exécution de la requête.

  13. #13
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    après l'insertion du code que tu m'as proposé pour afficher les erreurs AJAXle navigateur m'a ramené mon tableau response.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                        success: function(response){
                            alert(response);
                            if(response.success){
                                alert(response);
                                console.log(response);return false;
                                $(corptab).prepend('<tr><td>'+response.nature+'</td><td>'+response.ope+'</td><td>'+response.val+'</td><td>'+response.lib+'</td><td>'+response.mont+'</td><td>'+response.ref+'</td><td>'+response.compte+'</td></tr>');
                            }
    Il ne se passe RIEN là dedans ?
    • Ni en alert, ni en console ?
    • Aucun message d'erreur dans la console ?



    Et avec juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                        success: function(response){
                            alert(response);
    ?

  15. #15
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    Après test aucun alert, mais enregistrement dans la base.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu n'as pas répondu :

    Citation Envoyé par jreaux62 Voir le message
    2 TESTS simples :
    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            console.log('<tr><td>'+response.nature+'</td><td>'+response.ope+'</td><td>'+response.val+'</td><td>'+response.lib+'</td><td>'+response.mont+'</td><td>'+response.ref+'</td><td>'+response.compte+'</td></tr>');
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            $(corptab).prepend('<tr><td>COUCOU ?</td></tr>';

  17. #17
    Membre régulier
    Inscrit en
    Avril 2010
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 257
    Points : 87
    Points
    87
    Par défaut
    je n'ai aucune reponse.

    par exemple dans le code ci-dessous j'ai la réponse de console.log('OK1'), enregistrement dans la base mais pas de réponse de console.log('OK2') tel est le problème que je rencontres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $(document).ready(function(){
                var form = ('#form');
                var corptab = ('#corptab');
     
                $(form).on('submit', function(e){
                    e.preventDefault();
     
                    // Récupération des noms de input comme variables
                    var data = $(this).serialize();
                    var url = $(this).attr('action');
     
                    console.log('OK1');
                    $.ajax({
                        type: 'POST',
                        url: url,
                        data: data,
                        dataType: 'json',
                        success: function(response){
                            console.log('OK2');
                        }
                    });
     
                });
            });

Discussions similaires

  1. Aucun retour pour création de liste chainée
    Par Teybeo dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2011, 14h00
  2. [Carte graphique] ATI : aucun retour de performances
    Par Mistic100 dans le forum Composants
    Réponses: 0
    Dernier message: 06/12/2009, 11h08
  3. [MySQL] Aucun retour de requetes en local avec Wamp
    Par nO_life dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/02/2009, 12h35
  4. [Tableaux] Variable de retour en cas d'erreur
    Par laxe13 dans le forum Langage
    Réponses: 7
    Dernier message: 13/01/2009, 11h30
  5. Réponses: 8
    Dernier message: 13/09/2005, 17h32

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