C'est sur la première page:

scoreSubmit() {
  var name = prompt("Unesi svoje ime:");
  var objekat = {
    "name": name,
    "score": score
  };
  var myJSON = JSON.parse(localStorage.getItem("textvalue"));
  myJSON[myJSON.length] = objekat;

  var sort = false;
  while (!sort) {
    sort = true;
    for (var i = 0; i < myJSON.length - 1; i++) {
      if (myJSON[i + 1].score > myJSON[i].score) {
        var temp = myJSON[i];
        myJSON[i] = myJSON[i + 1];
        myJSON[i + 1] = temp;
        sort = false;
      }
    }
  }
  localStorage.setItem("textvalue", JSON.stringify(objekat));
}

et c'est le code sur ma deuxième page

  var myJSON=JSON.parse(localStorage.getItem("textvalue"));

  var bodycontent="";

  for(var i =0;i<myJSON.length;i++){
               bodycontent +="<tr>";
               bodyContent += "<td>" + (i + 1) + ".</td><td class='name'>" + myJSON[i].name + "</td><td>" + myJSON[i].score + "</td>";
               bodyContent += "</tr>";


   }
   document.getElementById("leaderboardBody").innerHTML =bodycontent;

mais pour une raison quelconque, si les données JSON n'apparaissent pas sur la table. Savez-vous où je fais défaut? Toute aide a besoin de moi beaucoup!

0
Stefan Tosic 4 nov. 2019 à 12:57

1 réponse

localStorage.setItem("textvalue", JSON.stringify(objekat));

semble faux. Vous vouliez sûrement écrire

localStorage.setItem("textvalue", JSON.stringify(myJSON));

?

Sinon, il écrira simplement une valeur d'objet dans localstorage, et le but de récupérer une liste existante, de l'ajouter et de trier est inutile. De plus, si vous essayez de traiter un seul objet à l'aide de votre code de deuxième page, il n'aura pas de longueur (car il ne s'agit pas d'un tableau) et la boucle ne s'exécutera donc pas pour créer le code HTML.

0
ADyson 4 nov. 2019 à 12:16