Forum-webmaster
Technique - programmation => Javascript / DOM / Ajax => Message commencé par: Un@m3d le le 05-01-2009 a 20:26:28

Titre: Ajax s'exécute plusieur fois :s
Posté par: Un@m3d le le 05-01-2009 a 20:26:28

Bonjour tout le monde,

J'ai un petit soucis avec JQuery.

J'ai créer une page HTML contenant un titre "Mes informations" avec dedans un span "Modifier" et en dessous un liste d'informations.

Ma page HTML en gros :

[color=Blue]
Mes informations Modifier
--------------------------------------------------------------------------
Nom :         Mailleux
Prénom :      Robert
Sexe :         Homme
...[/color]

Maintenant quand je clique une première fois sur modifier, les informations nom, prénom, ... disparaissent, une barre de chargement apparaît et dès que JQuery a chargé le formulaire, celui-ci apparaît. Jusque là j'ai pas de problème.

Après lorsque je clique sur le bouton "enregistrer" de mon formulaire, j'ai de nouveau ma barre de chargement et dès que JQuery à enregistré mes modifications et m'a rechargé ma liste d'informations, il me l'affiche. Jusque là toujours pas de problème.

Mais maintenant, lorsque je clique une deuxième fois sur modifier (sans avoir rechargé la page), mon script JQuery s'exécute deux fois et me donne donc une erreur.

Mon code JS en gros :

[color=Blue]
function enregistreEditGenerales()
{
   var errors = '';
   
   $('#loadInformationsGenerales').ajaxStart(function()
   {
      $(this).css({"margin-top":"40px","display":"block"});
   });
   $('#loadInformationsGenerales').ajaxStop(function()
   {
      $(this).css({"display":"none"});
   });
   
   if($('#generalesNom').val() == '')
   {
      errors = '<li>Vous n\'avez pas renseigné votre nom.</li>';
   }
   if($('#generalesPrenom').val() == '')
   {
      errors = '<li>Vous n\'avez pas renseigné votre prénom.</li>';
   }
   
   var sexe = $('#generalesSexe').val();
   
   if(errors != '')
   {
      $('#profilInformationsGenerales form').before('<ul class="error">' + errors + '</li>');
   }
   else
   {
      $('#profilInformationsGenerales form').remove();
      $.post("./ajax/enregistreGenerales.php", { user_id: $('#user_id').text(), nom: nom, prenom: prenom, sexe: sexe }, function(form)
                  {
                     //$('#editInformationsGenerales').css("display","inline");
                     $('#profilInformationsGenerales dt').after(form);
                  });
   }
   
}

function afficheEditGenerales()
{
   $('#loadInformationsGenerales').ajaxStart(function()
   {
      $('#editInformationsGenerales').css("display","none");
      $(this).css({"margin-top":"40px","display":"block"});
   });
   $('#loadInformationsGenerales').ajaxStop(function()
   {
      $(this).css({"display":"none"});
   });
   
   $('#profilInformationsGenerales dd:not([id])').remove();
   
   $.post("./ajax/editGenerales.php", { user_id: $('#user_id').text() }, function(form)
                  {
                     $('#profilInformationsGenerales dt').after(form);
                     
                     $('#generalesSubmit').click(enregistreEditGenerales);
                  });
}

$(document).ready
(
   function()
   {
      $('#editInformationsGenerales').click(afficheEditGenerales);
   }
);[/color]

Voilà est-ce que quelqu'un à une idée sur mon problème ?

Merci

Titre: Re:Ajax s'exécute plusieur fois :s
Posté par: compos le le 04-02-2009 a 17:33:02

Bonjour,

Pouvez poster le message d'erreur généré ?
Je ne suis pas expert en Ajax, mais peut-être que je pourrais vous donner une piste pour résoudre votre problème.

Cordialement.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.