Bonjour,

Pour commencer voici le code:

<script>
function afficherCalendrier(feed){
    console.log(feed);
    [...]
    else{
        var leTotal = new Array();
        for(var j=0;j<feed.lesProjets[0].lesTachesDuProjet.length;j++){
            chaine+="<tr id='tac"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].id_tache+"'><td><b class='etage2'>+ "+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].nom_tache+"</b></td>";
            for(var z=0;z<nombreJours;z++){
                chaine+="<td class='aCliquerTache";
                if(feed.lesJours[z].lettres=="V"){
                chaine+=" redMargin";
            }
                chaine+="' id='0_"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].id_tache+"_"+feed.lesJours[z].date+"'></td>";
            }
            chaine+="</tr>";
            //Les Sites
            for(var k=0;k<feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites.length;k++){
                chaine+="<tr class='tac"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].id_tache+"'><td>"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].nom_site+"</td>";

                //les horaires de chaques sites
                for(var l=0;l<feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].lesTemps.length;l++){
                    chaine+="<td class='aCliquer ";
                    if(feed.lesJours[l].lettres=="V"){
                    chaine+="redMargin";
                }
                chaine+="'><span id='0_"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].id_tache+"_"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].id_site+"_"+feed.lesJours[l].date+"_"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].modif[l]+"'>"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].lesTemps[l]+"</span></td>";
                if (j==0)
                    leTotal[l]=feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].lesTemps[l];
                else
                    leTotal[l]=leTotal[l]+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].lesSites[k].lesTemps[l];
                }
                chaine+="</tr>";
            }

            //LE PROBLEME
            console.log($("tr#tac"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].id_tache+" td.aCliquerTache").length);
        }
    }
    $("#calendrier tbody").html(chaine);
}

        function remplirCalendrier(){
            $.ajax({url:"data.php",dataType:'json',async:false,data:{"action":"afficherCalendrier","mois":leMois,"id_user":id_user},success: afficherCalendrier});
        }
</script>

Le soucis se trouve être la ligne juste sous le commentaire "LE PROBLEME", le résultat de la console 0 alors qu'il doit en avoir à chaque fois au moins 1 au minimum. (Je précise bien sur que tout le reste du code fonctionne ^^

Aidez moi, s'il vous plaît :(

Merci :)

Guillaume R.

3 réponses


Un peu chaud de plonger dans ton code mais essaie d'afficher

"tr#tac"+feed.lesTaches[feed.lesProjets[i].lesTachesDuProjet[j]].id_tache+" td.aCliquerTache"

Pour voir si le selecteur est bon

Il me semble que tes indices i et j sont hors scope. le i sort de nulle part et le j est déclaré dans une boucle qui est déjà terminée.
j'ai bon ?

Bonjour,

pas de problème pour le j ,

En revanche à quoi correspond i ??

for(var j=0;j<feed.lesProjets[0].lesTachesDuProjet.length;j++) ici i=0 ?

Peut -on à minima avoir le feed?

(le transporter de manière sérialiser :

console.log(JSON.stringify(feed));

)