begin process at 2012 05 29 00:52:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Boucle sur un script Ajax


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Boucle sur un script Ajax

lundi 12 novembre 2007 à 11:16:55 | Boucle sur un script Ajax

caviar

    Salut à vous ô forts du JS...
Je suis une fois de plus en train de galérer... enfin cette fois ci je crois que c'est enfin sur un problème digne de ce nom...

je vous explique le principe.

j'ai un tableau html de 4 colones de large par N de haut avec des input texte dans chaque case.
le nombre de ligne de ce tableau est aléatoire et est remplis en fonction d'une BDD via un moteur de template. donc si j'ai trois lignes dans ma bdd je vais afficher ma page avec les input préremplis sur trois lignes.

l'idée est que je verrifie les valeurs entrées dans les input grace à un script ajax. Si je ne les retrouve pas dans ma bdd (une autre table) alors j'affiche la ligne en question sur fond rouge...

bon tout ça marche quand j'envoie le test ligne par ligne... le script ajax fonctionne bien.

mais maintenant je veux créer une fonction qui boucle sur toutes les lignes du tableau pour faire une verrif globale.

j'ai donc créé une boucle for qui appelle ma fonction de verrif ajax en lui passant les bons paramètres

//fonction qui va lancer la verif sur toutes les lignes du tableau
            function verrifAllRef() {
            // alert (document.getElementById('dTable').childNodes.length);
            for ( var b=0; b<document.getElementById('dTable').childNodes.length; b++ )
                {
                 if ( document.getElementById('dTable').childNodes[b].tagName == 'TR') {
                // alert( document.getElementById('dTable').childNodes[b].tagName + document.getElementById('dTable').childNodes[b].id );
                 // selection dynamique de la cellule du tableau parcouru
                 cellule = document.getElementById('dTable').childNodes[b].getElementsByTagName('td')[0];
            //     alert (cellule);
                 //on lance la verif ajax pour cette cellule
                 verrifRef('ajax_verrif_ref.php', cellule);
                 }
                }
            }

La fonction ajax envoie donc en boucle trois requettes HTTP avec des valeurs en post...
mais le problème c'est que quand les trois réponses http arrivent seule la dernière est prise en compte (d'après ce que j'ai pu comprendre sur firebug) et donc une seule ligne change de couleur au lieu des trois ...

j'aimerai donc savoir comment faire pour dire à mon script d'attendre la réponse avant de relancer une requette à HTTP via ma fonction ajax...

euuh ...j'espère que c'est pas trop charabia ce que je vous ai raconté parce que là je coince vraiment ...
merci à vous
@++
lundi 12 novembre 2007 à 12:01:38 | Re : Boucle sur un script Ajax

caviar

    Bon d'après ce que je lis depuis tout à l'heure une solution serait peut être de faire une pause entre chaque appel de la fonction ajax

j'ai testé

//fonction qui va lancer la verif sur toutes les lignes du tableau
            function verrifAllRef() {
            // alert (document.getElementById('dTable').childNodes.length);
            for ( var b=0; b<document.getElementById('dTable').childNodes.length; b++ )
                {
                 if ( document.getElementById('dTable').childNodes[b].tagName == 'TR') {
                // alert( document.getElementById('dTable').childNodes[b].tagName + document.getElementById('dTable').childNodes[b].id );
                 // selection dynamique de la cellule du tableau parcouru
                 cellule = document.getElementById('dTable').childNodes[b].getElementsByTagName('td')[0];
            //     alert (cellule);
                 //on lance la verif ajax pour cette cellule
                verrifRef('ajax_verrif_ref.php', cellule);
                 setTimeout("rien()",1000);
                 }
                }
            }
           
            function rien() {
            return true;
            }

mais apparament la boucle for ne tient pas compte de ça ..elle boucle à donf quand même :(
lundi 12 novembre 2007 à 12:28:48 | Re : Boucle sur un script Ajax

bultez

Membre Club


Bonjour,
    de toutes manières mettre un délai n'est pas fiable.

    ne pas faire une boucle, mais


  
    index=0
    appel fonction ajax

dans fonction ajax

    ...
    xml.onreadystatechange = function()
    {    if(xml.readyState == 4)
          { index++
             si index<= maxi ==> appel fonction ajax
          }
    }
    ...


                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 12 novembre 2007 à 12:31:16 | Re : Boucle sur un script Ajax

bultez

Membre Club
setTimeout ce n'est pas "attendre un certain temps",
c'est lancer la fonction citée après un délai, et continuer
    à l'instruction suivante.

                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 12 novembre 2007 à 15:43:39 | Re : Boucle sur un script Ajax

caviar

    Yes ! merci pour ces éclairages.
Entre temps j'ai changé de technique et je vais faire mes tests au moment de la génération du template ... c'est plus simple au final...
j'ai lu sur quelques posts que ça parlait d'ajox synchrone et asynchrone ... ça corresponds à quoi ça exactement ?

@+
lundi 12 novembre 2007 à 16:06:06 | Re : Boucle sur un script Ajax

bultez

Membre Club
Réponse acceptée !
dans le
        xml.open("POST ou GET", "url voulue", true ou false);

         true = asynchrone, n'attend pas la réponse pour continuer
         false=synchrone, attend la réponse pour continuer

         synchrone jamais testé, pas sûr que "ce soit bien" d'utiliser !?!
          et comme l'asynchrone est simple à gérer...


                Cordialement            Bul         [mon Site]     [M'écrire]
mardi 13 novembre 2007 à 12:13:38 | Re : Boucle sur un script Ajax

caviar

    ah ouai .. ça peut servir ...
imagines ça dans une boucle ... on attends la réponse avant de continuer la bouche c'est bien ça ? donc ce serai impec pour ce genre de traitement en boucle :) :)
Bon du coup pour ce problème j'ai géré autrement mais le cas se représentra surement...
@+


Cette discussion est classée dans : script, fonction, boucle, tableau, ajax


Répondre à ce message

Sujets en rapport avec ce message

Tri (fonction sort) [ par John_Doe_88 ] Salut tlm,J'utilise la fonction sort pour trier un tableau, mais ce tableau peut être très grand et dans ce cas j'obtiens un message dans le navigateu Tri (fonction sort) [ par John_Doe_88 ] Salut tlm,J'utilise la fonction sort pour trier un tableau, mais ce tableau peut être très grand et dans ce cas j'obtiens un message dans le navigateu fonction compatible [ par salim81 ] bonjour a tous! bon j'ai trouve un script de click bouton droit et ça marche avec internet explorer mais ça marche pas avec Mozilla. le script:     probleme dans ce script [ par tonytruand ] bonsoir;je plante sur ce script, je pense que j'ai un problème de quote, peut être, mais je ne trouve pas la soluc.avez vous une idéemerci    Recherch redimensionnement d'un tableau en fonction de la résolution [ par kedieng ] Slt je suis entrain de monter un petit site mais je voudrais redimensionner un tableau en fonction de la resolution de l'écran. Question de présentati Affecter une fonction à une cellule d'un tableau [ par chamallow ] Bonjour,J'ai un tableau HTML où je créer des lignes dynamiquement grâce au javascript.Seulement pour certaines cellules, j'ai besoin d'affecter des fo Suppression de l'élément x d'un tableau [ par BlouMan ] Salut tout le monde,j'ai un tableau (array) dans lequel sont stocké des objets (jusqu'ici tout va bien). J'aimerais supprimer l'élément qui est à la p [DEPLACE]Select avec possibilité d'ajout par formulaire pour gestion disques [ par gandalf76fr ] Bonjour, Je suis débutant malgré moi an Ajax, ma spécialité étant le php/mysql. Suite à une demande je suis en train de travailler sur un script de Dimensionner un tableau en fonction de la résolution. [ par gabrielmaraval ] Bonjour,Voila en fait j'ai crée un tableau sur une page internet, mais le problème, c'est ue pour une résolution plus petite à la mienne, le tableau s Ha... je ne sais pas comment m en sortir sur ste question de javascript [ par sammer ] a)Ecrivez le code de la fonction initialise() qui utilise la fonction « Math.random () » pour remplir le tableau « valeur » avec des nombres variants


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales