IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Retour réponse dans Ajax success


Sujet :

jQuery

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Retour réponse dans Ajax success
    Bonjour,

    J'utilise un ajax pour discuter avec une api (ajout d’utilisateur dans une salle) et en cas de success, je fais afficher un message dans une div. Jusque la ca va sauf quand j'appel plusieures fois ma fonction ajax, 3 fois par exemple avec des retour différents, il affiche 3 fois le dernier message.

    Les fonctions:

    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
     
    function ajax_uti_f_room(action, id_user, id_room) {
      $.ajax({
        url : '/ajax/uti_f_id_room_id.php',
        type : action,
        data : {'id_user': id_user, 'id_room': id_room},
        dataType : "json",
        success : function(response) {
                    alert(action + ': id_user (' + id_user + ') -> id_room(' + id_room + ')');
                    message('success', action + ': id_user (' + id_user + ') -> id_room(' + id_room + ')');
              },
        error : function(response) {
                    message('error', JSON.stringify(response));
                 }
        });
    }
     
    function message(type, message) {
      $('#message').text(message).attr('class', type).slideDown('slow').delay(1500).slideUp('slow');
    }


    Dans le success, le alert affiche bien ce qu'il faut tant dis que la fonction message affiche que le dernier appel 3 fois.

    Par exemple, si j'appel 3 fois j'ai le déroulement suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ajax_uti_f_room('POST', 30, 1111);
      ---> affiche alert avec 30 -> 1111
     
    ajax_uti_f_room('POST', 30, 2222);
      ---> affiche alert avec 30 -> 2222
     
    ajax_uti_f_room('POST', 30, 3333);
      ---> affiche alert avec 30 -> 3333
      ---> affiche message avec 30 -> 3333
      ---> affiche message avec 30 -> 3333
      ---> affiche message avec 30 -> 3333
    alors que je pensais que le déroulement serait celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ajax_uti_f_room('POST', 30, 1111);
      ---> affiche alert avec 30 -> 1111
      ---> affiche message avec 30 -> 1111
     
    ajax_uti_f_room('POST', 30, 2222);
      ---> affiche alert avec 30 -> 2222
      ---> affiche message avec 30 -> 2222
     
    ajax_uti_f_room('POST', 30, 3333);
      ---> affiche alert avec 30 -> 3333
      ---> affiche message avec 30 -> 3333

    Je ne comprends pas, j’espère que mon explication est claire

    Merci d'avance

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    « ta vision finale » est liée au fait que le navigateur peut mettre en suspend le « redrawing » de la page pendant certaines opérations, dans ton cas il te faudrait plutôt passer par un ajout d'un élément contenant le message dans un élément parent.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    SI je comprend bien, il faudrait que l'espace ou j’écris le message doit déjà être afficher et juste changer le texte dedans c'est ca ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Non mais faire un ajout du message, méthode .append() ou .appendTo(), au conteneur $('#message').

Discussions similaires

  1. [AJAX] Retour d'un json dans Ajax d'une requête Mysql
    Par laplumedoie dans le forum AJAX
    Réponses: 11
    Dernier message: 16/03/2013, 09h15
  2. [AJAX] success dans $.ajax()
    Par bender86 dans le forum jQuery
    Réponses: 2
    Dernier message: 29/12/2012, 18h33
  3. récuperer le data dans le success de ajax
    Par flyoman dans le forum jQuery
    Réponses: 8
    Dernier message: 06/03/2011, 13h41
  4. [AJAX] Mise en place d'un réponse dans Ajax.Request via JSON
    Par polothentik dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 13/05/2008, 09h05
  5. [AJAX] Retour chariot dans un textarea avec AJAX
    Par Death83 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/09/2006, 22h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo