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

AJAX Discussion :

[AJAX] AJAX dans une boucle


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Par défaut [AJAX] AJAX dans une boucle
    Bonjour,

    J'aimerais faire une requête AJAX en POST pour chaque span ayant la classe done_by afin d'y insérer un texte (les spans sont caché auparavant). J'ai pour cela besoin d'envoyer l'ID de chaque span ayant comme classe done_by.


    Du coup j'ai créé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var done_by_element = $('.done_by');
    for (var i=0 ; i < done_by_element.length ; i++){
    	var element = done_by_element.eq(i);
    	id = element.attr('id');
    	var temp = id.split("_");	
    	$.post("../functions/ajax/display_name.php", {
    	  id_case: temp[0],
    	  id_task: temp[1]
    	}, function(data,status){
    		$('.done_by').html(data);		
    		//alert("Data: " + data + "\nStatus: " + status);
    	});
    }
    Mon id est composé comme ceci number1_number2, je précise juste cela pour vous expliquer le split que j'effectue.

    Admettons que je souhaite renvoyer mon ID (pour simplifier) via le $('.done_by').html(data); . Cela s'effectue mais le problème est que ça m'affiche l'ID de mon dernier span partout !
    J'aimerais effectuer cette opération pour chaque span séparément. Je pensait que la boucle for serait suffisante mais visiblement ...non.

    Avez-vous une idée de comment y parvenir ? Dois-je utiliser une autre technique ?

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    ça m'affiche l'ID de mon dernier span partout !
    Vu que c'est ce que tu demandes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('.done_by').html(data);
    ça n'a rien d'étonnant...

    De toute façon, ta boucle est assez maladroite, tu devrais utiliser .each() à la place et ne mettre à jour que $(this).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Homme Profil pro
    Informaticien versatile
    Inscrit en
    Mars 2015
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien versatile

    Informations forums :
    Inscription : Mars 2015
    Messages : 31
    Par défaut
    Citation Envoyé par Bovino Voir le message
    De toute façon, ta boucle est assez maladroite, tu devrais utiliser .each() à la place et ne mettre à jour que $(this).

    Merci ! Ça m'éclaire un peu mieux !

    J'ai donc changé ma façon de procéder

    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
    $('.done_by').each(function()
    {
     
    	temp = $(this).attr('id').split("_");
    	alert(temp[0] + " et " + temp[1]);
     
    	$.post("../functions/ajax/display_name.php",
    	{
    	  id_case: temp[0],
    	  id_task: temp[1]
    	},
    	function(data,status){
     
    		$(this).html(data);					
    		//alert("Data: " + data + "\nStatus: " + status);
    	});				
    });
    Par contre je ne suis pas sur de mon $(this).html(data);

    Lorsque j'effectue un alert avec temp[0] et temp[1] dans le .each, ça m'affiche bien tout ce que j'ai besoin mais maintenant, plus rien ne se modifie dans mon HTML.

    Est-ce que le $(this).html(data); correspond bien au span en cours ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Par défaut
    Non.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $('.done_by').each(function(){
     	var monSpan = $(this);
    	temp = $(this).attr('id').split("_");
    	alert(temp[0] + " et " + temp[1]);
     	$.post("../functions/ajax/display_name.php",{
    	  id_case: temp[0],
    	  id_task: temp[1]
    	},
    	function(data,status){
    		monSpan.html(data);					
    		//alert("Data: " + data + "\nStatus: " + status);
    	});				
    });

Discussions similaires

  1. [AJAX] XHR dans une boucle
    Par ihebs dans le forum AJAX
    Réponses: 7
    Dernier message: 03/03/2014, 18h14
  2. [AJAX] AJAX - ID dans une boucle
    Par berino dans le forum AJAX
    Réponses: 6
    Dernier message: 07/02/2010, 19h13
  3. [AJAX] propriété dynamique perdue dans une boucle FOR
    Par spidflinch dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/02/2009, 14h01
  4. Réponses: 3
    Dernier message: 25/11/2008, 17h01
  5. [AJAX] variable de fonction dans une boucle
    Par Hurin dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/06/2008, 09h51

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