Début laborieux avec $.post
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:
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:
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...