Bonjour,

M'exerçant à jquery, je cherche à traiter des données par ajax. L'utilisateur clique sur un bouton et déclenche un traitement de données dans un fichier php qui sera appelé via jquery, et qui renverra à sont tour tel ou tel message en fonction du succès des requêtes:
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
 $(document).ready(function(){
                $("#myForm").submit(function(){
                    $("#loader").show();
                    $.post("transfertCompta.php", function(data){
                        $("#loader").hide();
                        if(data != "ok"){
                            $("#content").empty().append("ca marche pas");
                        }
                        else{
                            $("#content").empty().append("la requête a bien marché");
                        }
                    });
                    return false;
                });
            });
//Le code html
<div id="content">
            <p class="warning" align="center">Transférer le bon en comptabilité ?</p>
            <form id="myForm" name="myForm" method="post" action="#">
...
                            <div align="right">
                                <input name="btnOk" type="submit" class="btnAlert" id="btnOk" value="Ok"/>
                            </div>
...
</form>
    </div>
        <div id="loader" align="center" style="display:none"><img src="../../../../img/ajax-loader.gif" alt="Loading" /></div>
Le code php maintenant:
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
if(isset($_POST['btnOk'])) {
    //Duplicata des données
    $insert= 'INSERT INTO compta (nBonCom, designation, quantite, section, idUser)
        SELECT nBonCom, designation, quantite, section, idUser 
        FROM boncommandes AS b
        WHERE b.`nBonCom` = "'.$_SESSION['nBonCom'].'"';
    $requete= mysql_query($insert) or die ('Erreur SQL'.$insert.'<br>'.mysql_error());
 
//    Si la requête a été opérationnelle
    if($requete != 0){
//        on efface le contenu de la table 'boncommandes'
        $delete= 'DELETE FROM boncommandes
            WHERE `nBonCom`= "'.$_SESSION['nBonCom'].'"';
        $requete1= mysql_query($delete) or die ('Erreur SQL'.$delete.'<br>'.mysql_error());
    }
 
    //
    if($requete1 !=0) {
        echo 'ok';
    }
    else {
        echo 'not ok';
    }
}
Après plusieurs test, ce que j'ai pu observer (et pour le moins étrange!), c'est que $_POST['btnOk'] n'est pas pris en compte dans le fichier php et de ce fait les requêtes ne s'effectuent pas. Si maintenant, je retire cette condition, les requêtes peuvent s'exécuter normalement ! (???)
Autre chose encore, le message de retour : $requête1 n'est pas vide (donc bonne), mais le script jquery considère que data est différent de ok, et affiche donc que cela ne marche pas, alors que c'est bien le contraire...
Merci de bien vouloir éclairer mes lanternes...