glupto: ABspeichern per localstorage

Hallo, ich wollte erst, dass meine Nutzer Einstellungen (Medienauswahl) per cookie speichern können, wurde dann aber hier auf localstorage hingewiesen, das ich nicht kannte. Jetzt habe ich mit sehr rudimentären JS-Kenntnissen folgendes versucht.

<!DOCTYPE html>
<html>
<head>

<script>
function speichern() {
 window.localStorage.setItem('medien', 'auswahl');
}

function lesen() {
 var key = localStorage.getItem('medien');
 alert ("You typed: " + key);
}
</script>

</head>
<body>


<form action="JavaScript:speichern();" method="post" >
<input type="checkbox" name="auswahl[]" value="http://www.tagesschau.de">Tagesschau<br>
<input type="checkbox" name="auswahl[]" value="http://www.spiegel.de">Spiegel<br>
<input type="checkbox" name="auswahl[]" value="http://www.heute.de">Heute<br>
<input type="checkbox" name="auswahl[]" value="http://www.deutschlandfunk.det">Deutschlandfunk<br>
<input type="checkbox" name="auswahl[]" value="http://www.inforadio.de">Inforadio<br>
<input type="checkbox" name="auswahl[]" value="http://www.br.de">BR<br>
<input type="checkbox" name="auswahl[]" value="http://www.ndr.de">NDR<br>
<input type="checkbox" name="auswahl[]" value="http://www.mdr.de">MDR<br>
<input type="checkbox" name="auswahl[]" value="http://www.zeit.de">ZEIT<br>
<input type="checkbox" name="auswahl[]" value="http://www.focus.net">FOCUS<br>
<input type="checkbox" name="auswahl[]" value="http://www.tagesspiegel.de">Tagesspiegel<br>
<input type="checkbox" name="auswahl[]" value="http://www.rp-online.de">Rheinische Post<br>
<input type="checkbox" name="auswahl[]" value="http://www.stern.de">Stern<br>
<input type="checkbox" name="auswahl[]" value="http://www.n24.de">N24<br>
<input type="checkbox" name="auswahl[]" value="http://www.sr-online.de">SR<br>
<input type="checkbox" name="auswahl[]" value="http://www.wdr.de">WDR<br>
<input type="checkbox" name="auswahl[]" value="http://www.taz.de">taz<br>
<input type="checkbox" name="auswahl[]" value="http://www.faz.de">FAZ<br>
<input type="checkbox" name="auswahl[]" value="http://www.sueddeutsche.de">Süddeutsche<br>
<input type="checkbox" name="auswahl[]" value="http://www.fr.de">FR<br>
<input type="submit" value="go!">
<input type="button" value="read!" onClick="JavaScript:lesen();">
</form>


</body>
</html>

Ich habe mir zur Kontrolle, das Gespeicherte bzw. Abgerufene per alert ausgeben lassen wollen, klappt aber alles nicht so recht, hat jemand einen Tipp? Danke Glupto

  1. Hallo und guten Morgen,

    Hallo, ich wollte erst, dass meine Nutzer Einstellungen (Medienauswahl) per cookie speichern können, wurde dann aber hier auf localstorage hingewiesen, das ich nicht kannte. Jetzt habe ich mit sehr rudimentären JS-Kenntnissen folgendes versucht.

    <!DOCTYPE html>
    <html>
    <head>
    
    <script>
    function speichern() {
     window.localStorage.setItem('medien', 'auswahl');
    }
    
    function lesen() {
     var key = localStorage.getItem('medien');
     alert ("You typed: " + key);
    }
    </script>
    
    </head>
    <body>
    
    
    <form action="JavaScript:speichern();" method="post" >
    <input type="checkbox" name="auswahl[]" value="http://www.tagesschau.de">Tagesschau<br>
    <input type="checkbox" name="auswahl[]" value="http://www.spiegel.de">Spiegel<br>
    <input type="checkbox" name="auswahl[]" value="http://www.heute.de">Heute<br>
    <input type="checkbox" name="auswahl[]" value="http://www.deutschlandfunk.det">Deutschlandfunk<br>
    <input type="checkbox" name="auswahl[]" value="http://www.inforadio.de">Inforadio<br>
    [...]
    <input type="checkbox" name="auswahl[]" value="http://www.faz.de">FAZ<br>
    <input type="checkbox" name="auswahl[]" value="http://www.sueddeutsche.de">Süddeutsche<br>
    <input type="checkbox" name="auswahl[]" value="http://www.fr.de">FR<br>
    <input type="submit" value="go!">
    <input type="button" value="read!" onClick="JavaScript:lesen();">
    </form>
    
    
    </body>
    </html>
    
    

    Ich habe mir zur Kontrolle, das Gespeicherte bzw. Abgerufene per alert ausgeben lassen wollen, klappt aber alles nicht so recht, hat jemand einen Tipp? Danke

    WAS klappt denn nicht?
    WIE lässt Du die Daten per alert() anzeigen?
    Mische nicht das antiquierte Javascript und moderne Methoden. Richte dir einen Eventlistener ein, z.B. für ein Button-Element.

    Hier im Wiki ist das scheinbar noch sehr rudimentär, ich kann jedenfalls keine ausführlichen Beschreibungen finden: http://wiki.selfhtml.org/wiki/JavaScript/API/Web_Storage

    Aber bei der "Konkurrenz" steht schon eine ausführlichere Beschreibung.
    http://www.w3schools.com/html/html5_webstorage.asp

    Daraus geht auch hervor, dass Du tunlichst erst prüfen solltest, ob ein Storage-Type überhaupt zur Verfügung steht. Darin kannst Du dann Skalare und Objekte speichern. Und wenn Du die dann per alert() anzeigen lassen willst, musst Du entwweder direkt auf das betroffene Objekt/den Skalar zugreifen, oder aber über den Storage iterieren. Und Du benötigst eine toString()-Methode für die Objekte.

    Grüße
    TS

    1. WAS klappt denn nicht?
      WIE lässt Du die Daten per alert() anzeigen?
      Mische nicht das antiquierte Javascript und moderne Methoden. Richte dir einen Eventlistener ein, z.B. für ein Button-Element.

      Daraus geht auch hervor, dass Du tunlichst erst prüfen solltest, ob ein Storage-Type überhaupt zur Verfügung steht. Darin kannst Du dann Skalare und Objekte speichern. Und wenn Du die dann per alert() anzeigen lassen willst, musst Du entwweder direkt auf das betroffene Objekt/den Skalar zugreifen, oder aber über den Storage iterieren. Und Du benötigst eine toString()-Methode für die Objekte.

      Oha, ich merke schon an Deiner Antwort meine gewaltigen Lücken. Eventlistener? toString()-Methode sind bisher noch Fremdwörter. (Kenne mich bisher man gerade etwas in php aus und minimal in js)

      Was nicht klappt: Er gibt im obigen Fall aus "You typed: auswahl". Ich wollte erstmal probieren, ob ich es überhaupt hinkriege, die Ergebnisse einer checkbox-Formulareingabe in ein array per localStorage zu speichern und wieder abzurufen. Die Abfrage, ob localStorage überhaupt möglich ist, wollte ich danach angehen. Zwischenzeitlich war es mir gelungen, das Ergebnis der checkboxen per php ausgeben zu lassen, aber ich will das Ganze ja ausschließlich auf dem Rechner des Nutzers abspeichern und nicht aus noch php, js und localstorage mischen...Javascript antiquiert, das wusste ich nicht...

      1. Hallo glupto,

        ...Javascript antiquiert, das wusste ich nicht...

        gemeint ist das html-Attribut onclick.

        Zudem solltest du auch auf die br-Elemente verzichten.

        Bis demnächst
        Matthias

        --
        Signaturen sind bloed (Steel) und Markdown ist mächtig.
        1. Hallo glupto,

          ...Javascript antiquiert, das wusste ich nicht...

          gemeint ist das html-Attribut onclick.

          Zudem solltest du auch auf die br-Elemente verzichten.

          Mein Problem ist, dass ich nicht weiß, wie ich die Eingaben der checkboxen in den storage bekomme. Werte in den storage zu packen und wieder auszulesen, scheint ja nicht so schwierig zu sein (ging ja per php auch), aber wie ich denn das Abspeichern praktisch vollziehe ohne onclick oder onsubmit, weiß ich nicht und da hatte ich halt gedacht, mithilfe einer js-funktion, die bei click oder submit ausgelöst wird, aber das scheint ja nicht der wahre Jacob zu sein....

          1. Hallo glupto,

            […] mithilfe einer js-funktion, die bei click oder submit ausgelöst wird, aber das scheint ja nicht der wahre Jacob zu sein....

            Das ist schon grundsätzlich richtig, nur ist man in der heutigen Zeit bemüht, Markup (HTML), Darstellung (CSS) und Verhalten (JS) konsequent voneinander zu trennen. Deshalb schreibt man das komplette CSS möglichst in eine eigene Ressource -verzichtet also sowohl auf style-Elemente und style-Attribute- und registriert eben auch die Eventhandler im Javascript und nicht im HTML. Siehe u.a. http://wiki.selfhtml.org/wiki/JavaScript/Event-Handler

            Unter Verwendung der dort beschriebenen Helferfunktionen, sollte es bei dir im JavaScript heißen AddEvent(Button-ID,"click",lesen)

            Bis demnächst
            Matthias

            --
            Signaturen sind bloed (Steel) und Markdown ist mächtig.
      2. Hallo und guten Tag,

        ich habe damit bisher auch noch nicht wirklich gearbeitet, aber so funktioniert es schon mal:

        <!Doctype html>
        <html>
        <head>
            <meta charset="utf-8">
            <script>
                if(typeof(Storage) !== "undefined") 
                {
                    // Code for localStorage/sessionStorage.
                    myLs = localStorage;
                } 
                else 
                {
                    // Sorry! No Web Storage support..
                    alert('No local storage support!');
                }
            </script>
        
            <title>Local Storage Objekt</title>
        	
        </head>
        <body>
            <p id="result"></p>
        </body>
        
        <script>
            if (myLs)
            {
                if( myLs.clickcount) 
                {
                    myLs.clickcount = Number(myLs.clickcount) + 1;
                } 
                else 
                {
                    myLs.clickcount = 1;
                }
            }    
        
            document.getElementById("result").innerHTML = "You have clicked the button " + myLs.clickcount + " time(s).";
           
        </script>
        </html>
        
        
        

        Das bedarf nun allerdings noch der Berichtigung und Kommentierung durch die geübten Javascriptler :-)

        Grüße
        TS

        1. <!Doctype html>
          <html>
          <head>
              <meta charset="utf-8">
              <script>
                  if(typeof(Storage) !== "undefined") 
                  {
                      // Code for localStorage/sessionStorage.
                      myLs = localStorage;
                  } 
                  else 
                  {
                      // Sorry! No Web Storage support..
                      alert('No local storage support!');
                  }
              </script>
          
              <title>Local Storage Objekt</title>
          	
          </head>
          <body>
              <p id="result"></p>
          </body>
          
          <script>
              if (myLs)
              {
                  if( myLs.clickcount) 
                  {
                      myLs.clickcount = Number(myLs.clickcount) + 1;
                  } 
                  else 
                  {
                      myLs.clickcount = 1;
                  }
              }    
          
              document.getElementById("result").innerHTML = "You have clicked the button " + myLs.clickcount + " time(s).";
             
          </script>
          </html>
          
          
          

          Erstmal danke für Deine Mühe, ich wollte allerdings nicht die Zahl der Klicks in den localstorage packen, sondern den array mit den jeweiligen Mediennamen oder URLs, den ich dann hinterher wieder auslesen wollte, damit die website nur die Medien enthält, die der Nutzer sehen will.

          1. Hallo und guten Tag,

            Erstmal danke für Deine Mühe, ich wollte allerdings nicht die Zahl der Klicks in den localstorage packen, sondern den array mit den jeweiligen Mediennamen oder URLs, den ich dann hinterher wieder auslesen wollte, damit die website nur die Medien enthält, die der Nutzer sehen will.

            Bitte nicht alles auf einmal. Zerlege dein Projekt:

            Woher kommen die A-Elemente initial? Was passiert bei erneutem Aufruf der Seite? Du bnötigst also im localStorage eine Datenstruktur. Und Du benötigst einen definierten Programmablauf.

            1. Speichern und Auslesen von Werten im localStorage

            2. unterschiedliche Typen speichern und auslesen im/aus localStorage

            3. saubere Struktur (HTML) für die Auswahl aufbauen und versuchen, einen Eventlistener dafür aufzubauen. Zur Kontrolle die Werte als Texte in einem Container (DIV) anzeigen lassen. Wenn Du die Hyperreferenzen speichern willst, gehören dazu ja mindestens das href-Attribut und ein Wert für die Linkbeschreibung. Und wenn man dann alle verfügbaren dort abspeichern will, müsste man auch ein Flag für "ausgewählt" haben. Es würde sich also anbieten, daraus Objekte zu machen, die dann im localStorage landen -> ausprobieren!

            4. Speichern der Objekte im localStorage

            5. Wiederaufbau der Auswahlliste aus dem localStorage.

            6. Fehlerkontrolle, -berichtigung und fertig!

            Grüße
            TS

      3. Hi, Hi,

        localStorage hat nix mit php (server) zu tun sondern ist im Browser (Client) genauso wie JS. localStorage.setItem('medien', 'auswahl'); speichert den Text ‘auswahl’

        wenn du alle checkboxen prüfen willst, ist es am einfachsten sie in eine Klasse zu packen. <input type="checkbox" class="glupto" name="auswahl[]" value="http://www.focus.net">FOCUS<br>

        mit JQuery:

        var alleSender = "";
        $(".glupto:checked").each(function() {
              alleSender += this.value; 
        });
        localStorage.setItem('medien', alleSender );
        
        --
        Viele Grüße aus LA ralphi
        1. mit JQuery:

          var alleSender = "";
          $(".glupto:checked").each(function() {
                alleSender += this.value; 
          });
          localStorage.setItem('medien', alleSender );
          

          Ohne jQuery, mit modernem JavaScript:

          const $ = document.querySelectorAll.bind(document);
          const alleSender = [...$('.glupto:checked')].map(x => x.value);
          localStorage.setItem('medien',alleSender);
          
        2. hi,

                alleSender += this.value; 
          

          na, ein bischen mehr Struktur darf es ruhig sein, als alles nur aneinanderzuhängen. Da hast Du ja jedesmal Huddeleien, den ganzen Klumbatsch wieder aufzudröseln und dafür das Rad neu erfinden zu müssen.

          Behördenbriefe heftest Du doch auch nicht im Umschlag ab, oder?

          ;)

  2. Tach!

    window.localStorage.setItem('medien', 'auswahl');

    Das speichert die Zeichenfolge auswahl unter dem Schlüssel medien ab. Wenn du einen Variableninhalt speichern möchtest, musst du eine solche notieren und kein Stringliteral.

    function lesen() { var key = localStorage.getItem('medien'); alert ("You typed: " + key); }

    Die Browser haben heutzutage Entwicklerwerkzeuge an Bord. Das eine ist die Konsole, in die man mit console.log() schreiben kann. Das ist dann auch wesentlich besser untersuchbar als ein alert()-Fenster. Weiterhin kann man direkt in der Konsole auch ohne console.log() Variablen anschauen. Fang in der Konsole an mit tippen lo und du bekommst eine Autovervolltändigung. localStorage und Enter und du siehst den Inhalt.

    <input type="checkbox" name="auswahl[]" value="http://www.tagesschau.de">Tagesschau<br>

    Für Javascript ist ein Name mit []-Klammern dahinter nicht unverwendbar, aber auch recht sinnlos. Die []-Klammern sind nur für den PHP-Mechanismus gut, der dir ein Array anlegt.

    Und einfach so den Namen der Checkboxen angeben speichert nicht deren Inhalt. Den musst du erstmal zu Fuß extrahieren. document.form_name_wenn_es_einen_hätte.auswahl gibt ein Array mit den Checkboxen. Über die Eigenschaft checked kannst du deren Markierung auswerten.

    Weiterhin möchtest du sicher ein Array anlegen, in dem die gewählten Elemente abgelegt werden. Ein solches im localStorage zu speichern geht nicht so einfach, das muss erst serialisiert werden, beispielsweise mit JSON.stringify() - lesen dann mit JSON.parse().

    Übrigens, die Prüfung auf Vorhandensein des localStorage kann man sich eigentlich sparen, der ist in aktuellen Browsern immer vorhanden. Wenn ihn jemand deaktiviert haben sollte, dann ist das eben so und der Komfort der Vorauswahl fällt weg.

    dedlfix.

  3. Hallo Glupto,

    auf codePen ist ein Beispiel wie das funktionieren kann.

    gr qx

    1. Hallo und guten Tag,

      auf codePen ist ein Beispiel wie das funktionieren kann.

      Das sieht so aus, als hättest Du das eben speziell für Glupto fertig gemacht. Schön und danke dafür :-) my10Points :-)

      Kleiner Zählerfehler ist an einer Stelle noch drin.

      Nun ist der Lösungsvorschlag aber im Prinzip zum Wegwerfwissen verdammt. Das finde ich äußerst schade. Wenn Du diese Lösung für das Self-Wiki aufbereiten könntest, mit den passenden ausführlichen Erläuterungen versehen, ist das bestimmt Vielen ein paar Extrapunkte wert - Ok, dafür kann man sich auch nix kaufen. Aber es ehrt doch immerhin den Verfasser ;-)

      Und dann könnte @Dag mit dem nächsten Schritt aufsetzen, und den Artikel erweitern in Bezug auf Arrays und Objekte in JS und deren Serialisierung/Deserialisierung. Du hast das ja noch proprietär gelöst.

      Unser Wiki ist an dieser Stelle leider noch etwas dünn.

      Und ich verspreche auch, fleißig mitzulesen und keine dummen Sprüche abzulassen :-P

      Grüße
      TS

      1. Hallo TS,

        auf codePen ist ein Beispiel wie das funktionieren kann.

        Nun ist der Lösungsvorschlag aber im Prinzip zum Wegwerfwissen verdammt.

        Nun damit es etwas mehr Zeit vorm Kübeln bekommt, habe ich es (Fehlerbereinigt) in meine selfHTML-Beispiel-Sammlung aufgenommen. Dort bleibt es verfügbar.

        Und dann könnte @Dag mit dem nächsten Schritt aufsetzen, und den Artikel erweitern in Bezug auf Arrays und Objekte in JS und deren Serialisierung/Deserialisierung. Du hast das ja noch proprietär gelöst.

        proprietär?

        Die jetzige Version speichert Objekte (JSON) ins sessionStorage liest und gibt sie gleich wieder aus. Mir hilft das ab und an mich ein wenig von meinen Projekten zu erholen.

        gr qx

        1. Hallo und guten Abend,

          auf codePen ist ein Beispiel wie das funktionieren kann.

          Nun ist der Lösungsvorschlag aber im Prinzip zum Wegwerfwissen verdammt.

          Nun damit es etwas mehr Zeit vorm Kübeln bekommt, habe ich es (Fehlerbereinigt) in meine selfHTML-Beispiel-Sammlung aufgenommen. Dort bleibt es verfügbar.

          Und dann könnte @Dag mit dem nächsten Schritt aufsetzen, und den Artikel erweitern in Bezug auf Arrays und Objekte in JS und deren Serialisierung/Deserialisierung. Du hast das ja noch proprietär gelöst.

          proprietär? Die jetzige Version speichert Objekte (JSON) ins sessionStorage liest und gibt sie gleich wieder aus. Mir hilft das ab und an mich ein wenig von meinen Projekten zu erholen.

          Ich konnte jetzt mit selfHTML-Beispiel-Sammlung nicht viel anfangen. Da scheint 'was verloren gegangen zu sein. Außerdem fehlen mir die ausführlichen Kommentare für das why_done/why_not_done im Quellcode. Die machen doch so ein Beispiel für Lernende erst interessant. :-)

          Grüße
          TS

          1. Hallo TS,

            Ich konnte jetzt mit selfHTML-Beispiel-Sammlung nicht viel anfangen. Da scheint 'was verloren gegangen zu sein. Außerdem fehlen mir die ausführlichen Kommentare für das why_done/why_not_done im Quellcode. Die machen doch so ein Beispiel für Lernende erst interessant. :-)

            Das ist schon so gewollt, mir ging es nur darum ein funktionerendes Beispiel zu erstellen, für mich als Gedächtnisstütze und falls es jemand interessiert als Model zum herumprobieren, deswegen ist auch alles in einer Datei, ohne externe Quellen abgespeichert.

            Ich gehöre eindeutig nicht zur Fraktion ausführlicher Erklärungen, dass ist nicht mein Ding. Versuch und Irrtum, analysieren, ausprobieren umbauen und …

            Lernende meines Naturells brauchen funktionierende Beispiele, der Rest erschließt sich beim ausprobieren ;-), zum anderen gibt es mittlerweile so viele Quellen sich das fehlende Wissen anzueignen.

            gr qx

            ps: ein lebender Standard verlangt der nicht auch lebende Beispiele ?

            1. ich probiere noch damit rum und verstehe noch manches nicht, z. B. warum bei "read" die abgespeicherten Medien weder in der richtigen noch in der umgekehrten Reihenfolge ausgegeben werden...?

              und wie ich das Ergebnis von "read" in ein von php zu lesendes array ausgeben kann...

              1. problematische Seite

                ich probiere noch damit rum und verstehe noch manches nicht, z. B. warum bei "read" die abgespeicherten Medien weder in der richtigen noch in der umgekehrten Reihenfolge ausgegeben werden...?

                Die Ergebnisse werden im aktuellen Beispiel in der Reihenfolge ausgegeben wie sie im Dokument stehen. Dabei behandle ich das click Event, warte also nicht auf ein submit, sondern speichere bei jedem click auf eine der checkboxen (label) das sessionStorage neu. Mein Beispiel ist etwas komplexer geworden (JSON), da ich die ursprüngliche Problemstellung so verstanden habe, ist allerdings wurscht, es werden nur mehr storage Möglichkeiten abgedeckt.

                und wie ich das Ergebnis von "read" in ein von php zu lesendes array ausgeben kann...

                Im aktuellen Beispiel gibt es die function build(), welche das Ergebnis per innerHTML direkt ausgibt, und eine function load() welche beim Laden der Seite verwendet werden kann um zB mittels eines Ajax-request das Ergebnis entsprechend zu filtern.

                gr qx

                1. ABer das Beispiel bei codepen ist eine alte Version, oder? Dort passiert jetzt bei read nichts erkennbares...

                  1. Hallo und guten Tag,

                    da @quincunx nicht wirklich mitspielen will, erinnere ich nochmal an meinen Vorschlag unter http://forum.selfhtml.org/self/2015/aug/3/abspeichern-per-localstorage/1647059#m1647059.

                    Wenn Du selber mitspielst, sollte das mit Hilfe der Threads und Postings der letzten Wochen, z.B. von (HAL), zu lösen sein und eine Gruppe nachvollziehbarer Beispiele zu erzeugen sein.

                    Wenn Du aber nur darauf wartest, dass Dir jemnand die Wünsche von den AUgen abliest und dann hier eine Ideallösung präsentiert, die Du dann vermutlich aber auch nicht nachvollziehen kannst, dann solltest Du ein Partnerforum aufsuchen ;-P

                    Also? Machst Du mit?

                    Grüße
                    TS

                    1. Hallo und guten Tag,

                      da @quincunx nicht wirklich mitspielen will, erinnere ich nochmal an meinen Vorschlag unter http://forum.selfhtml.org/self/2015/aug/3/abspeichern-per-localstorage/1647059#m1647059.

                      Ich bin mir eben noch nicht sicher, ob das Ganze auch mit Cookies gut zu lösen ist (Abspeichern der gewünschten Medien als Kennzahlen/index oder ob ich localstorage brauche und wie ich das dann womöglich mit js (geringe Kenntnis) am besten umsetze.

                      Wenn Du selber mitspielst, sollte das mit Hilfe der Threads und Postings der letzten Wochen, z.B. von (HAL), zu lösen sein und eine Gruppe nachvollziehbarer Beispiele zu erzeugen sein.

                      Mitspielen immer, HAL habe ich hier in diesem Thread nicht als Autor gesehen, du meinst andere Threads?

                      Wenn Du aber nur darauf wartest, dass Dir jemnand die Wünsche von den AUgen abliest und dann hier eine Ideallösung präsentiert, die Du dann vermutlich aber auch nicht nachvollziehen kannst, dann solltest Du ein Partnerforum aufsuchen ;-P

                      Niemand soll mir Wünsche von den Augen ablesen- was ich brauche habe ich ja gesagt, ich brauche, dass beim AUfruf meiner Seite im Cookie oder localstorage nachgeschaut wird, welche Medien vom Nutzer gewünscht werden, und dass ich entsprechend mit php die Seite aufbereite (wie bisher ja auch, nur dass der Nutzer ALLE Medien sieht.)

                      Welches Partnerforum meinst Du? Ich dachte, das hier wäre das Umfassendste (HTML/PHP/JS)>

                      Also? Machst Du mit?

                      Grüße
                      TS

                  2. ABer das Beispiel bei codepen ist eine alte Version, oder? Dort passiert jetzt bei read nichts erkennbares...

                    Ja, die neue Version ist jetzt auch auf codePen zu sehen.

                    Soweit ich deine Problemstellung verstanden habe willst du die Anzeige entsprechend der Auswahl filtern. Dazu ist mein localStorage Beispiel überdimensioniert, ist eher für eine offline Lösung gedacht.

                    Da du nur den index deines elements[index] brauchst (zB: 0 = tagesschau, 5 = FAZ) ist mAn ein Cookie geschickter in welchem nur die index-Einträge (zB: 0,5) gespeichert werden, hat auch den Vorteil schon serverseitig behandelt zu werden.

                    gr qx

                    1. ABer das Beispiel bei codepen ist eine alte Version, oder? Dort passiert jetzt bei read nichts erkennbares...

                      Ja, die neue Version ist jetzt auch auf codePen zu sehen.

                      Soweit ich deine Problemstellung verstanden habe willst du die Anzeige entsprechend der Auswahl filtern. Dazu ist mein localStorage Beispiel überdimensioniert, ist eher für eine offline Lösung gedacht.

                      Da du nur den index deines elements[index] brauchst (zB: 0 = tagesschau, 5 = FAZ) ist mAn ein Cookie geschickter in welchem nur die index-Einträge (zB: 0,5) gespeichert werden, hat auch den Vorteil schon serverseitig behandelt zu werden.

                      gr qx

                      Ach, und hier war mir geraten worden, lieber localstorage zu nehmen, das sei einfacher... Ich weiß auch noch nicht, ob ich nur den Index brauche, oder auch die gewünschte Zeilenzahl, möglicherweise auch Gestaltungsmerkmale (Spalten, Farben) individuell einstellen lassen möchte.

                      1. Ach, und hier war mir geraten worden, lieber localstorage zu nehmen, das sei einfacher... Ich weiß auch noch nicht, ob ich nur den Index brauche, oder auch die gewünschte Zeilenzahl, möglicherweise auch Gestaltungsmerkmale (Spalten, Farben) individuell einstellen lassen möchte.

                        In diesem WENN Fall (Zeilenzahl, Spalten, Farben …) ist das localStorage Beispiel mit JSON wieder hilfreich. Aber "man" kann auch beides verwenden, je nach Anforderung.

                        Wäre schon hilfreich WENN du deine Anforderung klarer umschreiben könntest. Zum anderen verwendest du in deiner Seite jQuery und dafür gibt es bestimmt passende Lösungen welches deine Anforderungen abdeckt.

                        gr qx

                        1. Ach, und hier war mir geraten worden, lieber localstorage zu nehmen, das sei einfacher... Ich weiß auch noch nicht, ob ich nur den Index brauche, oder auch die gewünschte Zeilenzahl, möglicherweise auch Gestaltungsmerkmale (Spalten, Farben) individuell einstellen lassen möchte.

                          In diesem WENN Fall (Zeilenzahl, Spalten, Farben …) ist das localStorage Beispiel mit JSON wieder hilfreich. Aber "man" kann auch beides verwenden, je nach Anforderung.

                          Wäre schon hilfreich WENN du deine Anforderung klarer umschreiben könntest. Zum anderen verwendest du in deiner Seite jQuery und dafür gibt es bestimmt passende Lösungen welches deine Anforderungen abdeckt.

                          gr qx

                          Naja, ich entwickle meine Ideen auch ein bisschen nach dem, was ohne ZU großen Aufwand möglich ist. Ich mache die Seite jetzt schon ne Weile in meiner Freizeit, verdiene kein Geld damit, da muss der Aufwand schon berechenbar sein. Ich denke pausenlos: Jetzt müsste ich erstmal ein halbes Jahr js/AJAX usw. studieren und dann alles umsetzen, aber die Zeit habe ich nicht. Und das Spendenaufkommen der Seite ist minimal. Also für den Anfang probiere ich es vielleicht erstmal mit einer minimal-Cookie-Lösung, auch das erschließt sich mir ja nicht auf Anhieb...

                          Vielen Dank jedenfalls für Deine bisherige Hilfe!!!

                        2. gr qx

                          Aber übrigens, selbst wenn ich cookies statt localstorage nehme, weiß ich nicht, wie ich so ohne weiteres die Ergebnisse der checkboxes (mit js?) in den cookie bekomme.

                          1. Aber übrigens, selbst wenn ich cookies statt localstorage nehme, weiß ich nicht, wie ich so ohne weiteres die Ergebnisse der checkboxes (mit js?) in den cookie bekomme.

                            Im Wiki findet sich ein Lösungsweg und Google hilft mit unzählig weiteren Lösungsvorschlägen.

                            gr qx

                            1. Im Wiki findet sich ein Lösungsweg und Google hilft mit unzählig weiteren Lösungsvorschlägen.

                              ich habe vergessen Googel hilft auch bei jQuery, cookie, checkbox

                              1. Hallo und guten Tag,

                                ich habe vergessen Googel hilft auch bei jQuery, cookie, checkbox

                                Hast Du überhaupt keine eigene Meinung?

                                Grüße
                                TS

                                1. Hast Du überhaupt keine eigene Meinung?

                                  Doch, allerdings bevorzuge ich unobtrusive vanilla-JavaScript. Da er auf seiner Seite mindestens zwei jQuery-Bibliotheken einbindet, ist meine Meinung irrelevant, deswegen soll er besser den Wiki Eintrag anschauen und/oder nach fertigen jQuery-Lösungen suchen.

                                  gr qx

                                  1. Hallo und guten Tag,

                                    Hast Du überhaupt keine eigene Meinung?

                                    Doch, allerdings bevorzuge ich unobtrusive vanilla-JavaScript.

                                    Da du auf deiner Seite mindestens zwei jQuery-Bibliotheken einbindest,

                                    Da lass mich jetzt mal überlegen. Auf welcher Seite meinst Du wohl? Ich habe schon lange gar keine eigene Seiten mehr.

                                    ist meine Meinung irrelevant, deswegen schau dir besser den Wiki Eintrag an und suche nach fertigen jQuery-Lösungen.

                                    Grüße
                                    TS

                                    1. Da lass mich jetzt mal überlegen. Auf welcher Seite meinst Du wohl? Ich habe schon lange gar keine eigene Seiten mehr.

                                      sry: War ein Mißverständnis, habe ich geändert.

                            2. Aber übrigens, selbst wenn ich cookies statt localstorage nehme, weiß ich nicht, wie ich so ohne weiteres die Ergebnisse der checkboxes (mit js?) in den cookie bekomme.

                              Im Wiki findet sich ein Lösungsweg und Google hilft mit unzählig weiteren Lösungsvorschlägen.

                              gr qx

                              Danke für die Hilfe, gegooglet hatte ich zwar schon aber ohne "jquery" als suchbegriff, werde es schon zurechtbekommen.

    2. auf codePen ist ein Beispiel wie das funktionieren kann.

      Vielen Dank, dass Du Dir die Mühe gemacht hast. Nun muss ich nur noch verstehen, wie es funktioniert. Immerhin konnte ich durch das Ändern "i=0" statt "i=1" erreichen, dass auch der Tagesschau-Link gespeichert und wieder gelesen wird, das war aber mehr intuitiv.

      Letztlich will ich ja nicht unbedingt links speichern, sondern nur erkennen und lesen können, welche Medien der Nutzer will, damit die Seite dann für ihn entsprechend reduziert aufgebaut wird. D.H. ich brauche ja höchstens zu Kontrollzwecken eine Anzeige, welche Medien er ausgewählt hat (könnte auch mit Kennziffern arbeiten 1=tagesschau, 2=heute usw.). Ich muss nur in der tatsächlichen "home"-Seite auslesen können, ob er etwas im localStorage gespeichert hat und was. Wie ich dann das Ergebnis umsetze auf der Seite weiß ich noch nicht. Bisher wird ja mit php eine Funktion ausgerufen, die die feeds holt und aufbereitet. Ich könnte immer abfragen, ob das jeweilige Medium der Standard-Seite auch im localStorage-Array vorhanden ist und die php-Funktion für das Medium laden oder eben nicht. Auch das wäre wahrscheinlich mit js einfacher zu erreichen, aber am Anfang der Programmiererei hatte ich noch ganz auf js verzichten wollen und Mühe genug, mich in php einzuarbeiten.

      Vielen Dank für alle Eure Kommentare, ich brauche immer ne Weile, um die durchzuarbeiten, kenne mich bisher wirklich gerade mal in php mittelmäßig aus und in html, in ja kaum. Apropos "Kunde", ich gestalte die Seite nur für mich in meiner Freizeit, keine Auftragsarbeit, kein Lohn, keine Werbeeinnahmen...

      Für Tipps immer dankbar... Gruß glupto

  4. hallo,

    Ich habe mir zur Kontrolle, das Gespeicherte bzw. Abgerufene per alert ausgeben lassen wollen, klappt aber alles nicht so recht, hat jemand einen Tipp? Danke

    Verwende in JS eine Datenstruktur die Du ggf. auch serverseitig verwenden kannst. Da localStorage nur key => string kann, brauchst du einen Serializer der zwischen einer Datenstruktur und einem String vermittelt (zb JSON.stringify()). Und falls ne serverseitige Kommunikation dazukommen soll wenn das der Kunde wünscht, hast Du das dann x+ fertig.

    dag