Page 1 sur 1

Retour de message

Posté : 29 juin 2010, 11:37
par albius
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 : Tout sélectionner

$(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:
$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:
$update = 'UPDATE compta
    SET cout = 0
    WHERE `nBonCom` = ?';
Le Java-script me renvoie toujours le second message

Code : Tout sélectionner

$("#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,

Re: Retour de message

Posté : 29 juin 2010, 14:20
par Nours312
en virant ton or die('Erreur SQL!'.$update.'<br>'.mysql_error()) ... suite à la requete mysql ;)

Re: Retour de message

Posté : 29 juin 2010, 15:42
par albius
Et oui bien sûr! Die() arrête le script.
Merci bien.

Re: Retour de message

Posté : 29 juin 2010, 15:59
par stealth35
Et oui bien sûr! Die() arrête le script.
Merci bien.
ouai mais c'est une fausse solution, tu devrais plutot tester si la requete a marcher, si oui t'affiche le resultat sinon t'affiche le mysql_error ;)

Re: Retour de message

Posté : 29 juin 2010, 22:11
par Nours312
ouai mais c'est une fausse solution, tu devrais plutot tester si la requete a marcher, si oui t'affiche le resultat sinon t'affiche le mysql_error ;)
c'est en dessous stealth35 ::
if ($nbreLine  > 0) {
        echo $listeNBonCom;
    } else {
        echo '';
    }
si ça plante il veux avoir une réponse vide pour son script JS ... et dans l'état, il faisait planter volontairement, voir si il pouvait avoir une réponse vide !... :D

Re: Retour de message

Posté : 01 juil. 2010, 10:27
par stealth35
ouai mais c'est une fausse solution, tu devrais plutot tester si la requete a marcher, si oui t'affiche le resultat sinon t'affiche le mysql_error ;)
c'est en dessous stealth35 ::
if ($nbreLine  > 0) {
        echo $listeNBonCom;
    } else {
        echo '';
    }
si ça plante il veux avoir une réponse vide pour son script JS ... et dans l'état, il faisait planter volontairement, voir si il pouvait avoir une réponse vide !... :D

non c'est pas la meme chose d'ailleurs c'est pas bon, pusique si ton mysql_query foire il va y' avoir une erreur lors du mysql_affected_rows

EDIT : non ça fais juste "-1" :wink: