• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Array in local storage speichern, nicht so wie ich will :/

L

lazercaveman

Guest
Hi @ All,

ich habe da folgendes Problem. Ich mache gerade eine Website, auf der es die Möglichkeit zu einem Produktvergleich geben soll. Nun habe ich also eine Funktion geschrieben, die dieses gewährleistet, so weit so einfach...

Nun soll es allerdings auch so sein, dass wenn der Kunde die Seite verlässt, und z.B. eine Unterseite besucht die Vergleichsbox mitgenommen werden soll (diese ist ein Zentrales Element der Page und bleibt immer eingeblendet). Um dieses zu gewährleisten habe ich die Daten in ein Array geschrieben und dieses gespeichert. Alles funktioniert so wie es soll, Daten werden in das Array übertragen, das Array wir vernünftig dargestellt, wenn ich nun jedoch auf eine Unterseite wechsel/refreshe wird das ganze zwar ausgegeben, allerdings als ein Punkt in dem Array und nicht wie zuvor als einzelne Punkte. Die ist allerdings notwendig, da diese auch wieder aus der Vergleichsbox, einzeln gelöscht werden können sollen.

Wirklich merkwürdig, irgendwo mache ich einen Fehler und sehe jetzt den Wald vor lauter Bäumen nicht mehr :/ vlt. sieht ja jemand von euch auf die Schnelle wo das Problem liegt, hier mal der Code:

Code:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//  Artikel vergleichen

var DealsInCheck = [
  localStorage.getItem('dealcheckvalue'),
];

$('#tarifrail').html( DealsInCheck[length] );

// Tarif zu Vergleichsbox hinzufügen
$('.vergleichsbtn').click ( function () {

  // variable zur Auswahl der zu speichernden Elemente
  var checkdetails = $(this).parent('.intercationbox').siblings('.dealdetails').html();

  // Beschreibung des Arrays
  localStorage.setItem('dealtransfer', checkdetails);
  DealsInCheck[DealsInCheck.length] = localStorage.getItem('dealtransfer');

  localStorage.setItem('dealcheckvalue', DealsInCheck);

  $('#tarifrail').html( DealsInCheck );

  console.log(DealsInCheck);

});

Vielen Dank an alle die sich das anschaue schon mal vorab. Vlt könnt ihr hier ja mal kund tun wie ihr das lösen würdet.

LG

- - - Aktualisiert - - -

Okay, also das Problem ist mir mittler Weile ersichtlich. Das Array wird onload ja quasi so gesetzt, dass die Inhalte in einem Punkt zusammengefasst werden. Ich habe jetzt mal hin und her überlegt und komme zu dem Entschluss, dass ich entweder jeden einzelnen Unterpunkt des Arrays explizit definieren müsste, das ist ja ziemlich ineffizient hat da evtl jemand eine bessere Lösung?

LG
 
Zuletzt bearbeitet von einem Moderator:
Hey,

vielen Dank für deine Antwort. Genau das hatte ich auch bereits gedacht und mir angeschaut. Jedoch bin ich nicht so der JSON Pro... ich habe es jetzt einfach so gemacht, das ich den Inhalt der Vergleichsbox, nach jeder Veränderung insgesamt speicher und nicht jedes einzeln hinzugefügte Produkt. Das Funktioniert grade auch super und da der Kunde sowieso nicht mehr will, als die Sachen dort abzulegen bzw. wieder zu entfernen ist das vorerst auch ausreichend. Dennoch muss ich mir die ganze JSON-Sache mal anschauen.

thnx 4 Help
 
Zuletzt bearbeitet:
AW: Array in local storage speichern, jetzt so wie ich will :)

Das mit JSON ist in diesem Fall wirklich einfach!
Code:
function arrayInLocalStorage(key,arr){
  localStorage[key]=JSON.stringify(arr);
}
function localStorageInArray(key){
  return JSON.parse(localStorage[key])||localStorage[key];
}
Mit arrayInLocalStorage schreibst du ein Array in den localStorage, mit localStorageInArray bekommst du es wieder als Array hinaus.
 
Zuletzt bearbeitet:
cool, habs jetzt vorerst anders gelöst, aber scheint ja wirklich relativ einfach zu sein, danke :)
 
Zurück
Oben