1 Dernière modification par guiguiz (26-01-2012 07:48:22)

Sujet : [Résolu] problème ajax avec le each()

Salut à tous,
j'ai un problème sur jquery concernant l'utilisation de ajax avec la boucle each() du framwork.voici de code que je vous passe:

<script>
        $(document).ready(function() {
          
           
            $('a.class1').click(function() { 
              var form_data = { ajax : '1'};
                $.ajax({
                    url: $('a.class1').attr('alt'),
                    type: 'POST',
                    async : false,
                    data: form_data,
                    success: function(msg) {
                                alert($('a.class1').attr('alt'));}
                });
                
                return false;
            });
            
            
            
            
        });
</script>

voici le code html sur le quel je voudrais appliquer la requete ajax sur chacun des liens suivant.

<a  class="class1" href="#" alt="aidezmoi_1.com">ce lien1</a>
<a  class="class1" href="#" alt="aidezmoi_2.com">ce lien2</a>
<a  class="class1" href="#" alt="aidezmoi_3.com">ce lien3</a>
<a  class="class1" href="#" alt="aidezmoi_4.com">ce lien4</a>
<a  class="class1" href="#" alt="aidezmoi_5.com">ce lien5</a>
<a  class="class1" href="#" alt="aidezmoi_6.com">ce lien6</a>

mon problème est que cette requete ajax ne fonctionne que pour le premier lien (<a  class="class1" href="#" alt="aidezmoi_1.com">ce lien1</a>) et pourtant je veut que la requete se fasse sur tous les liens vers des pages differentes ;ce qui nest pas le cas car elle pointe toutes vers le premier lien.je sais que la methode each() peut s'appliquer dans ce cas mais je cherche et je cherche ca ne marche pas bien.
NB:jai fait exprès de metter les liens sur les attributs alt,cela ne dérange pas.merci à tous
cordialement

Re : [Résolu] problème ajax avec le each()

Essaye en remplaçant tes

$('a.class1').attr('alt')

par des

$(this).attr('alt')

Parce que la tu lui dit de récupérer le alt du permier élément qu'il trouve en faisant $('a.class1').attr('alt'), soit donc le premier lien. En utilisant $(this) tu fais référence à l'élément cliqué wink

Re : [Résolu] problème ajax avec le each()

Attention, pour le deuxième

$('a.class1').attr('alt')

le this est plus le lien courant puisqu'il est dans la fonction succes

$('a.class1').click(function() { 
              var link = $(this),
                    form_data = { ajax : '1'};
              $.ajax({
                    url: link.attr('alt'),
                    type: 'POST',
                    async : false,
                    data: form_data,
                    success: function(msg) {
                                alert(link.attr('alt'));}
                });
                
                return false;
            });

Re : [Résolu] problème ajax avec le each()

Merci pour ta reponse qui m'aide enfin.Mais il ya un hic:la requete ne marche pas à tous les coup.Des fois elle s'exécute,des fois pas du tout. Comment remerdier et qu'est ce qui peut causer cela?Merci encore

Re : [Résolu] problème ajax avec le each()

Pour essayer de cibler la source du probleme, il faudrait deja que tu vire l'ajax pour voir si ça vient de là:

$('a.class1').click(function() { 
     alert($(this).attr('alt'));
});

Vois déjà si tu as bien le alert à chaque fois ?

Si oui, remet ta fonction ajax, et essaye de la passer en asynchrone (async:true ou tout simplement virer le parametre async puisqu'il est a true par défaut), parce que si ton serveur met du temps a répondre, le clic suivant risque d'être bloqué.

Re : [Résolu] problème ajax avec le each()

Essayes la solution de MaitreKabba et si ça n'avance pas je te conseille de mettre des console.log de partout (ouvrir Firebug ou tout autre outil de débogage sur navigateur privatif). Tu peux également voir, avec firebug, passer tes requêtes ajax et leur retour.
Tu peux aussi rajouter la fonction de callback error(jqXHR, textStatus, errorThrown) sur l'ajax (avec un log à l’intérieur bien sur)

Re : [Résolu] problème ajax avec le each()

Merci.justement justement la solution de MaitreKabba a marché nickel et jaipu avancé.J'aurais jamais déviné que ce saurait aussi facile.En plus ce framwork permet vraiment d'écrire moin et faire plus.Merci encore à tous.

PS: Euuuh s'il vous plait pendant que je cherche sur le net; comment fait -on pour mettre une animation lors de la requete? Car je rame un peu dessus.Mais sinon merci encore

Re : [Résolu] problème ajax avec le each()

9 Dernière modification par guiguiz (26-01-2012 06:25:21)

Re : [Résolu] problème ajax avec le each()

Tanks je jette un cou d'oeil rapide.

Ps:je cherche à marquer  ce topic résolu,je ne trouve pas ce fameux bouton

10

Re : [Résolu] problème ajax avec le each()