Problème de variable, array et de facebook... [Résolu/Fermé]

Signaler
-
 ChrisMar -
Bonjour à tous,

Je voudrais récupérer les valeurs de partage des différentes pages d'un site en parcourant une liste de pages... J'arrive bien à afficher la valeur d'une page avec une balise div mais je ne parviens pas à faire le total des partage.

Je vous envoie le code :



<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document sans nom</title>

<script type="text/javascript" src="//code.jquery.com/jquery-1.12.4.js"></script>
<script>(function test(url) {
      var apiUrl = "https://graph.facebook.com/?ids=" + url;
    
  $.ajax({
      url: apiUrl,
      success: function(result) {
  $.each(result, function(key, val) {
        console.log(key + " - " + val["share"]["share_count"]);
        console.log(key + " - " + val["share"]["comment_count"]);

            var commentCount = val["share"]["comment_count"];
            var shareCount = val["share"]["share_count"];
   return  shareCount;
            $("#fb-like-div").html(shareCount);
            $("#fb-comment-div").html(commentCount);
   
  });
  
        }
  
      });
   
    });
</script>

<script type="text/javascript">
function compte(){
var sousTotal=0;
var total=0; 
var listeUrl =('blabla.html','gigi.html,'fsgsd.html','sfdqfds.html','fdfdqfds.html'); 
 for(var i in listeUrl)
 {
       sousTotal=test(i);
   total = total + sousTotal;
 }
$("#total-div").html(total);
}
</script>


</head>

<body>
<body onload="compte()">


Nombre total de vue : <div id="total-div">0</div>

</body>
</html>




Merci de votre aide.
Bonne journée.

4 réponses

Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Bonjour,

- Que t'affichent tes console.log ?
- Si tu fais un
console.log(sousTotal);
dans ta boucle, qu'est-ce que ça t'affiche ?


J'essaie des que possible, d'ici 1 ou 2 heures.
Bien, le console.log m'aide bcp, pas mal d'erreur... soustotal affiche undefined. J'arrange les plus grosses erreur et je reviens vers vous demain. Merci. Par contre je pense que ce qui reste c'est le passage du résultat depuis la fonction test vers la fonction principale (le return shareCount) merci
J'ai corrigé le test(i) en test(listeUrl[i]) et l'envoi vers la fct vas bien, je le vois grâce aux console.log de la fct test. Par contre le retour de shareCount ne fonctionne pas bizarrement. Je ne vois pas pq. Merci
Bonsoir, je pense avoir trouvé... ma variable est locale dans la fct compte et dois être générale pour pouvoir recevoir le résultat de shareCount.... j'arrange ça demain et si c'est ok je met la question sur résolue. Merci
Bon je n'ai tjr pas réussi à faire fonctionner ce programme...

Il affiche dans la console console.log(key + " - " + val["share"]["share_count"]); un résultat cohérant par contre dans total il m'affiche nan... je ne sais plus quoi essayer.

Help please




<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Partage</title>

<script type="text/javascript" src="//code.jquery.com/jquery-1.12.4.js"></script>


<script type="text/javascript">
resultat2 = 0;


function test(url) {
var apiUrl = "https://graph.facebook.com/?ids=" + url +"&access_token=104105113296984|6OWEkndghjdhjVvVGoBaYPNUiMGoxg";

$.ajax({
url: apiUrl,
success: function(result) {
$.each(result, function(key, val) {
console.log(key + " - " + val["share"]["share_count"]);
console.log(key + " - " + val["share"]["comment_count"]);

var commentCount = val["share"]["comment_count"];
var shareCount = val["share"]["share_count"];
resultat2 = shareCount;
return resultat2;
});

}

});

};

function compte(){

var decompte = 0;


var listeUrl =["fzfezfze","fesfzefze","fzefzef","......"];

var total=0;
for (var i = 0; i < listeUrl.length; i++)
{
var texte=test(listeUrl[decompte]);
var sousTotal = texte;
total += parseInt(sousTotal,10);
decompte ++;
}
console.log(total);
$("#total-div").html(total);
}
</script>


</head>

<body onload="compte()">
Nombre total de vue : <div id="total-div">0</div>


</body>
</html>
Le post est résolu mais je n'arrive pas à me connecter pour le signaler... Merci à tous