[resolu] Envoi des données par PHP après vérification Ajax

Envoi des données par PHP après vérification Ajax [resolu] - HTML/CSS - Programmation

Marsh Posté le 09-06-2011 à 13:19:43    

Bonjour
 
J'ai un script Ajax et PHP qui me vérifient mes données lors de l'envoi d'un formulaire, et cela fonctionne parfaitement...
Au détail près que, lorsque toute les erreurs de l'internaute ont été corrigée, le formulaire ne s’envoie pas :cry:
 
Voici un aperçu du code en question :  

Code :
  1. <body>
  2.   <form action="signup.save.php" method="post" id="signup">
  3.    <fieldset>
  4.     <label for="login">Nom d'utilisateur&#8226;</label>
  5.     <input type="text" name="login" id="login" value="" />
  6.     <div id="msg-login">
  7.      <img src="images/template/signup-blank-16.png" class="stt-blank" alt="Choisissez un nom d'utilisateur" title="Choisissez un nom d'utilisateur" />
  8.      <img src="images/template/signup-warnd-16.png" class="stt-warnd" alt="Champs obligatoire" title="Champs obligatoire" />
  9.      <img src="images/template/signup-error-16.png" class="stt-error" alt="Nom d'utilisateur indisponible" title="Nom d'utilisateur indisponible" />
  10.      <img src="images/template/signup-valid-16.png" class="stt-valid" alt="Nom d'utilisateur disponible" title="Nom d'utilisateur disponible" />
  11.     </div>
  12.     <br class="clear" />
  13.     <input type="submit" name="valid" id="valid" value="Valider" />
  14.    </fieldset>
  15.   </form>
  16.   <script type="text/javascript">
  17.    $(document).ready(function() {
  18.     $('.stt-warnd').hide();
  19.     $('.stt-error').hide();
  20.     $('.stt-valid').hide();
  21.     $('#signup').submit(function() {
  22.      var login  = $('#login').val();
  23.      var dataString = 'login=' + login + '';
  24.      var err   = '';
  25.      $.ajax({
  26.       type: 'POST',
  27.       url:  'signup.check.php',
  28.       data: dataString,
  29.       success: function(data) {
  30.        var responseData = data;
  31.        var reg = new RegExp("[,]+", "g" );
  32.        var rag = new RegExp("[:]+", "g" );
  33.        var tab = data.split(reg);
  34.        for (i = 0; i < tab.length; i++) {
  35.         var nfo = tab[i].split(rag);
  36.         if (nfo[1] == 'error') {
  37.          $('#msg-' + nfo[0] + ' img.stt-blank').hide();
  38.          $('#msg-' + nfo[0] + ' img.stt-warnd').hide();
  39.          $('#msg-' + nfo[0] + ' img.stt-valid').hide();
  40.          $('#msg-' + nfo[0] + ' img.stt-error').fadeIn();
  41.         } else if (nfo[1] == 'valid') {
  42.          $('#msg-' + nfo[0] + ' img.stt-blank').hide();
  43.          $('#msg-' + nfo[0] + ' img.stt-warnd').hide();
  44.          $('#msg-' + nfo[0] + ' img.stt-error').hide();
  45.          $('#msg-' + nfo[0] + ' img.stt-valid').fadeIn();
  46.         } else if (nfo[1] == 'warnd') {
  47.          $('#msg-' + nfo[0] + ' img.stt-blank').hide();
  48.          $('#msg-' + nfo[0] + ' img.stt-valid').hide();
  49.          $('#msg-' + nfo[0] + ' img.stt-error').hide();
  50.          $('#msg-' + nfo[0] + ' img.stt-warnd').fadeIn();
  51.         }
  52.        }
  53.       }
  54.      });
  55.      return false;
  56.     });
  57.    });
  58.   </script>
  59.  </body>


 
Dans le cas présent, si je retire le 'return false;' (ligne 64), je passe sur la page 'signup.save.php', mais les données ne sont pas vérifiées ; si je laisse, mes données sont vérifiée mais je n'accède jamais à la page 'signup.save.php'.
 
Si vous avez une idée de comment je peux faire pour avancer, je vous en saurais gré.
 
Au revoir et Merci


Message édité par xkamui le 10-06-2011 à 11:00:42
Reply

Marsh Posté le 09-06-2011 à 13:19:43   

Reply

Marsh Posté le 10-06-2011 à 01:05:54    

petit up du soir, espoir ^.^

Reply

Marsh Posté le 10-06-2011 à 02:07:46    

Généralement c'est "return false;" pour empêcher l'envoi du formulaire, et "return true;" lorsque tout s'est bien passé (envoi du formulaire au script PHP)
 
edit: Heu $.ajax c'est asynchrone donc ta ligne "return false;" est inchangeable. Il faudrait "submitter" manuellement l'élément HTML form à  l'intérieur du callback ajax si tu veux provoquer l'envoi du formulaire asynchroniquement. du genre $('#signup')[0].submit(); (si je me rappelle bien avec jquery)


Message édité par czh le 10-06-2011 à 02:12:53
Reply

Marsh Posté le 10-06-2011 à 10:10:57    

Bonjour et merci de votre réponse

 

Celà m'a beaucoup aidé et mon problème est résolu !!

 

Encore Merci


Message édité par xkamui le 10-06-2011 à 11:00:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed