LocalStorage problem z wyświetleniem danych

0

Cześć, przywiało mnie tu bo jestem świeżakiem jeśli o programowanie idzie :)

Stworzyłem taki prosty formularz. Chcialbym podsumowanie skopiować do localStorage(to się udało, linie kodu 178-181).
Następnie chciałbym przywrócić ostanie podsumowanie jeśli np strona zostanie odświeżona albo przeglądarka ponownie uruchomiona. Do tego stworzyłem funkcję(linia 346)

projekt na jsfiddle:
https://jsfiddle.net/a6xmfLd0/

function checkLocal() {

  if(typeof(Storage) !==  undefined && outPut_two.hasChildNodes() == false)  {
    
        
      JSON.parse("howManyPeople");
      JSON.parse("howManyHives");
      JSON.parse("howManyBees");
      JSON.parse("howManyBees");
  
      if (window.localStorage.getItem("howManyBees")) {
        outPut_two.innerHTML = `<p>Rodzin łącznie: <br> <span class="display-2">${window.localStorage.getItem("howManyBees")}</span></p>`
      } else if (window.localStorage.getItem("howManyHives")) {
        outPut_two.innerHTML = `<p>Pasiek łącznie:<br><span class="display-2"> ${window.localStorage.getItem("howManyHives")}</p>`
      } else if (window.localStorage.getItem("howManyPeople")) {
        outPut_two.innerHTML = `<p>Wpłciło osób: :<br><span class="display-2"> ${window.localStorage.getItem("howManyHives")}</p>`
      } else if (window.localStorage.getItem("howMuchMoney")) {
        outPut_two.innerHTML = `<p>Wpłciło osób:<br><span class="display-2"> ${window.localStorage.getItem("howMuchMoney")}</p>
                                  <p class="small">raport składek</b> / ${dataWystawienia} / ${czasWystawienia}</p>`
      } else {
        return;
      }
    }
    return;
  } 
   
      
checkLocal();

0

Jak brzmi pytanie?

0

nie ma pytania, ale powiem co jest źle

po pierwsze - to wywala błąd i na pewno nie robi tego co chcesz:

JSON.parse("howManyPeople");

parsujesz JSONa o treści "howManyPeople" (to nie jest prawidłowy JSON). Chcesz zapewne parsować jsona z tego co jest w localstorage a nie przypadkowego stringa

Potem masz niepotrzebne "else" w wielu miejscach, chyba że chcesz uzupełnić dane tylko z pierwszego uzupełnionego pola

0

Masz nie zamknięty znacznik:

myWindow.document.write('</body></html');

Zrób sobie na początek:

function checkLocal() {
  console.log(typeof(Storage));
  console.log(outPut_two.hasChildNodes());
  if(typeof(Storage) !==  undefined && outPut_two.hasChildNodes() == false)  {

U mnie to nie przechodzi już przez ten warunek.

1 użytkowników online, w tym zalogowanych: 0, gości: 1