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 :

Retour de message


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Par défaut Retour de message
    Bonjour,

    A partir d'un formulaire simple, l'utilisateur va pouvoir réinitialiser un bon de commande. Pour ce faire, il passe par un script ajax:
    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
    $(function(){
        $("#choiceNBonCom").submit(function(){
            ...
            $.post("fonctionsBonCom.php", $("#choiceNBonCom").serialize(), function(data){
                ...
                if(data == ""){
                    $("#result").append('Oups! Le bon de commande '+data+' n\'a pas pu être traité correctement').addClass('bad').fadeIn('fast');
                }
                else{
                   ...
                    $("#result").append("Le bon de commande "+data+" a bien été réinitialisé...;
                }
            });
            return false;
        });
    });
    Le script php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $update = 'UPDATE compta
        SET cout = 0
        WHERE `nBonCom` = "'.$listeNBonCom.'"';
        $requete = mysql_query($update) or die('Erreur SQL!'.$update.'<br>'.mysql_error());
        $nbreLine = mysql_affected_rows();
        //
        if ($nbreLine > 0) {
            echo $listeNBonCom;
        } else {
            echo '';
        }
    Le script est fonctionnel, tant qu'il n'y a pas d'erreur côté serveur. Mais si j'en provoque une pour test, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $update = 'UPDATE compta
        SET cout = 0
        WHERE `nBonCom` = ?';
    Le Java-script me renvoie toujours le second message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#result").append("Le bon de commande "+data+" a bien été réinitialisé...;
    , avec l'erreur sql. Je devrais pourtant voir le premier retour du script. 'data' (java-script) n'est visiblement pas considéré comme vide. Pourquoi ? Comment corriger cela ?
    merci,

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    C'est normal puisque data contient la réponse AJAX qui en cas d'erreur SQL est "'Erreur SQL!'.$update.'<br>'.mysql_error()"

    La fonction die() arrête l'exécution de ton PHP.

    Donc soit tu modifies la génération de la réponse AJAX (dans le code PHP)
    Soit tu gères le cas où data contient l'erreur SQL (commence par "Erreur SQL!")

    devyan

Discussions similaires

  1. Réplication aller-retour et message d'erreur
    Par hoppa dans le forum Installation
    Réponses: 1
    Dernier message: 06/09/2011, 16h25
  2. Retour de message avec spam
    Par Telemak dans le forum Sécurité
    Réponses: 2
    Dernier message: 01/06/2009, 12h36
  3. [Socket] Création de bean et message de retour
    Par n8ken dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2006, 08h56
  4. [socket] message de retour
    Par n8ken dans le forum Langage
    Réponses: 2
    Dernier message: 25/07/2006, 09h04
  5. messages si champs "vides", le retour
    Par kgb1917 dans le forum Access
    Réponses: 3
    Dernier message: 18/07/2006, 19h10

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