Bonjour,
J'ai un petit soucis avec jQuery.validationEngine v2.6.1 : https://github.com/posabsolute/jQuery-Validation-Engine
Je l'utilisais déjà pour l'envoi de mail et je n'avais alors pas de soucis. Maintenant, j'aurais aimé mettre à jour une table dans une base de donnée via ce même plugin.
1) J'ai donc ce formulaire :
et ceci dans mon fichiers update.php :
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 <script src="js/jquery.validationEngine.js" type="text/javascript"></script> <script src="js/jquery.validationEngine-fr.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $('form').validationEngine({ ajaxFormValidation: true, ajaxFormValidationMethod: 'post', ajaxFormValidationURL: 'update.php', onAjaxFormComplete: function () { $('form').animate({opacity: 0, height: 0}, function(){ $(this).css('display','none'); $('.ajaxSubmit').show('slow'); }) }, }) }); </script> <div id="frame" class="form"> <div class="ajaxSubmit success"><span>SUCCèS : </span>SUCCESS !!!</div> <form> ... </form> </div>
Lorsque je valide le formulaire dans ce cas, j'ai bien le message de succès, ... mais ma base de donnée n'a pas été modifiée du tout.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php // CONNEXION BASE include ($_SERVER["DOCUMENT_ROOT"].'/frags/function/mysql_connect.php'); $table_insert = "UPDATE $table SET ... WHERE (...)"; // ENVOI $send = mysql_query($table_insert); if ($send) { echo 'true'; /*Affiche le message de succès*/ } // DECONNEXION BASE @mysql_close($base); ?>
2) Si je n'utilise plus le plugin jquery et que je modifie mon formulaire comme ceci :
Là ça fonctionne parfaitement, mais par contre j'affiche update.php alors que moi je voudrais que seul le message de succès s'affiche une fois que update.php s'est exécuté en tâche de fond.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <div id="frame" class="form"> <form method="post" action="update.php"> ... </form> </div>
3) Si je reprend le code du fomulaire du point 1) et que je modifie le fichier update.php comme ceci :
le message de succès s'affiche et je reçois le mail peu après.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $send = mail(...); if ($send) { echo 'true'; /*Affiche le message de succès*/ } ?>
Donc la question c'est :
Pourquoi la fonction mail() s’exécute avec validationEngine alors que mysql_query() non ?
Merci d'avance à tous ceux qui voudront bien m'aider
Partager