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:
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
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>
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 ! (???)
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'; } }
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...
Partager