Problème de variable, array et de facebook...

Résolu/Fermé
ChrisMar - Modifié le 26 juil. 2018 à 13:45
 ChrisMar - 27 juil. 2018 à 18:24
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.
A voir également:

4 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
26 juil. 2018 à 13:50
Bonjour,

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


0
J'essaie des que possible, d'ici 1 ou 2 heures.
0
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
0
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
0
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
0
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>
0
Le post est résolu mais je n'arrive pas à me connecter pour le signaler... Merci à tous
0