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

Einstellungen per localhost speichern und abrufen.

also erstmal eine js function in eine php schleife - grausam und unnötig
du erhälst beim POST das array Medium
das kannst du als string in local.storage speichern
Code:
function speichern() {
 window.localStorage.setItem('auswahl', &$value);
}
wie soll denn die function an den wert value kommen? den musst du schon definieren!
Code:
function lesen() {
 var key = localStorage.getItem('medien');
 alert ("You typed: " + key);
}
wo kommt denn jetzt der local.storage Eintrag medien her? deine ganzen Bezeichnungen passen nicht
 
Die js-funktion speichern() habe ich im php aufgerufen, weil ich doch nur über js die Aufforderung localstorage.setitem benutzen kann, oder? Ich bin aber bei
Code:
foreach ($_POST['Medium'] as $value) {
in php??

Wie würde ich denn 'Medium[]' als string in den localstorage speichern ohne von php in js zu wechseln ??

und definiere ich nicht $value genau an dieser Stelle?

Die funktion lesen () hatte ich da nur als Dummy stehen und noch nirgends aufgerufen...
 
Sorry aber die meisten Leute verbringen ihr wochenende auch mal nicht an der Tastatur, soll 1-2 mal im jahr vorkommen :D

Also zurück zum thema, dein aufbau ist nicht ganz durchdacht, wieso willst du es erst bei der ausgabe speichern?
Und dann auch noch bei jedem eintrag? Diene Ausgabe wird ja nur ausgegeben wenn man eine auswahl trifft, wie sieht man sich seine gewählten dinge später an?

du musst also folgendes tun, speicher deine auswahl noch vor dem versenden (obwohl ich nichtmal weiß wozu du das Formular abschicken willst, aber das ist Geschmackssache)
dann hast du viele möglichkeiten:
- mit php die komplette liste erzeugen und mit js das ausblenden was nicht gewählt wurde
- die ganze liste via JS ausgeben
- den local.storage in eine post variable (ajax) übergeben
- ich würde nur die checkbocken nutzen, ein functionsbutton der die auswahl speichert und ein startscript was die auswahl des local.storage direkt checkmarkt, somit hast du nur eine datei/seite und alles erledigt
es gibt noch viel mehr aber wir sollten glaub ich erst einmal damit anfangen dass du die auswahl mal ordentlich speicherst
 
Sorry fürs Drängeln.

Ich bin noch mal an den Anfang des Threads zurückgegangen: Da hast Du mir was gefiddlet
Code:
<script>
    function speichern(){
     i=1;
     $("input[type='checkbox']").each(function(){
          var dataURL	= $(this).attr('data-url');
          if($(this).is(":checked")){
               localStorage.setItem(i, dataURL);
               i++;
          }
     }).promise().done(function(){
          alert('Ihre Auswahl wurde erfolgreich gespeichert');
     });
}
</script>


<input type="checkbox" data-url="http://www.tagesschau.de">Tagesschau<br>
<input type="checkbox" data-url="http://www.spiegel.de">Spiegel<br>
<input type="checkbox" data-url="http://www.inforadio.de">Inforadio<br>

<input type="button" value="speichern" onclick="speichern();">
Das wäre doch speichern im localstorage, wenn's funktioniert, oder? Aber wenn ich mit firebug gucke, steht nichts im localstorage? Wenn es das täte, könnte ich das auf meine Einstellungsseite (oder in ein pop-up) packen und dann in meiner eigentlichen Startseite, wo sonst ja immer ALLE Medien erscheinen, abprüfen und je nach localstorage-Inhalt die einzelnen Medien darstellen oder nicht.
 
Zuletzt bearbeitet:
ja und ich hatte dir dann auch eine array version gefiddelt die besser passte Edit fiddle - JSFiddle
Es speichert in den local storate sowohl im chrome, also auch im firefox wie soeben getestet
ich glaube dein problem ist es die daten wiedr zu holen und zu verarbeiten kann das sein?
 
Das Abholen ist dann auch ein Problem, aber wenn ich mit Firebug gucke, sehe ich keinen Inhalt bei localstorage (siehe Screenshot)... Woran kann das denn liegen?
ScreenHunter_01 Aug. 12 14.35.jpg


Komisch, sehe gerade, dass bei Chrome localstorage angezeigt wird...Bei Firefox aber eben nicht.

Dann käme es wirklich auf das Auslesen an (1. Ist was im localstorage und 2. wie kommt ich an den Inhalt des Arrays?
 
Zuletzt bearbeitet:
Hab dir mal eine holen Function gebastelt, also wenn ich was speicher und dann wieder hole zeigt er mir das gespeicherte an, auch im FF ;)
http://jsfiddle.net/ab4ehuod/2/

- - - Aktualisiert - - -

kann sein dass du das externe speichern von locals.storage verboten hast im FF, aber kp wo man das im FF guckt, bin ein Kinde des Chromes
 
ja, das funktioniert, auch im FF, auch wenn localstorage im firebug nicht angezeigt wird. Dann müsste ich nur noch das Wieder-Ausgelesene in ein PHP-Array packen können, dass ich dann jeweils durchlaufen lasse, um nur die gewählten Medien anzuzeigen. Und ich müsste noch abfangen, dass jemand gar nichts angeklickt hat, aber trotzdem den speichern - Button gedrückt hat, oder?

Nochmals Danke ...
 
Ohne Dich erneut drängeln zu wollen: Im Netz finde ich keine vernünftigen Vorschläge, wie man den localstorage-Inhalt aus js heraus nach php transportiert?
 
wozu benötigst du denn PHP, kannst doch deine Feeds ein und ausblenden lassen, das könntest du mit JS realisieren,
wenn es PHP sein MUSS kommst du an ajax nicht vorbei
 
Naja, die ganze Seite beruht jetzt auf einer php-Konstruktion (Code siehe unten), die ich mühsam zusammengebastelt habe. Das jetzt alles auf js umzuschreiben, wo meine js-Kenntnisse sich sehr in Grenzen halten, wäre schwierig und ein sehr langfristiges Projekt. Dann muss ich mir wohl ajax reinziehen...

PHP:
<?php

// Die Hauptfunktion

function verarbeiteFeed($string, $maxim) {
    $link  = false;
    $lesen = false;
    $start = 0;
    $zaehl = 0;
    $alttitle = "";
    define("SCHLIESSE", ">");                // Für valides HTML je nach Dokumenttyp-Deklaration bei HTML ">" oder bei XHTML " />"

     $pxml = simplexml_load_string(wandleTags($string), "SimpleXMLElement", LIBXML_NOCDATA);

        if ($pxml->channel->item) $lesen = $pxml->channel->item;
        if ($pxml->entry)         $lesen = $pxml->entry;
        if ($pxml->item)         $lesen = $pxml->item;


if (strlen($lesen[0]->title) > 0 or strlen($lesen[1]->title) > 0) {

    foreach ($lesen as $nachricht) {
   

        if ($nachricht->title != false) {                  

                if ($nachricht->link) {

                    if ((string)$nachricht->link) {
                        $link = $nachricht->link;
                    }
                    elseif ($nachricht->link->attributes()) {
                        $attr = $nachricht->link->attributes();
                        $link = $attr["href"];
                    }
                }

$title = ($nachricht->title);

                    if (($nachricht->title) && ($title!=="") && ($title !== NULL) && ($title !== $alttitle) ){

                    if (($nachricht->summary) != false) {
                        
$trenn4 = ": (";
$title = explode($trenn4, $title);
$title = $title[0];
$alttitle=$title;


                    echo "<li><a href=\"".htmlspecialchars($link, ENT_QUOTES)."\" target=\"_blank\" class=\"ketchup tooltip\" title=\"".htmlspecialchars(filtereHTML($nachricht->summary), ENT_QUOTES)."\">".
                    htmlspecialchars(filtereHTML($title), ENT_QUOTES)."</a></li>\n";
                                  




                }

                    if (($nachricht->description) != false) {

$desc = ($nachricht->description);
$desc = str_replace(" ", "", $desc);
$desc = str_replace("<br/>", " - ", $desc);
$desc = preg_replace("#\s{2,}#", "", $desc); 
/*$desc = trim($desc);*/
$trenn = "Mehr zum Thema";
$desc = explode($trenn, $desc);

$desc = $desc[0];
$trenn2 = "<li>Video";
$desc = explode($trenn2, $desc);
$desc = $desc[0];
$trenn3 = "<li>Bilderserie";
$desc = explode($trenn3, $desc);
$desc = $desc[0];

$inst='Liveblog zum Besuch';
$livet='Fakten und Zahlen zur Queen';
$blog='Besuch mit Rucksack';
$ueber='Alle Videos';
$queen='Queen-Besuch - alle Videos';
$bdw='heute+';


$pos = strpos ($title,$bdw);
$pos1 = strpos ($title,$ueber);
$pos2 = strpos ($title,$blog);
$pos3 = strpos ($title,$livet);
$pos4 = strpos ($title,$inst);
$pos5 = strpos ($title,$queen);

if (($title !== '') && ($title !== NULL) && ($pos === false) && ($pos === false) && ($pos1 === false) && ($pos2 === false) && ($pos3 === false) && ($pos4 === false) && ($pos5 === false) && ($title !== $alttitle))

{


 ?>  
 



                    <li><a href='
                    <?php echo htmlspecialchars ($link, ENT_QUOTES); ?>
                    ' target='_blank'  class="ketchup tooltip" title="
                    <?php echo htmlspecialchars (filtereHTML ($desc), ENT_QUOTES); ?>     
                    ">
                    <?php echo ($title); ?> 
                    </a></li>
<?php

     $alttitle=$title;
}
else
{ $start--;}
 
 
 
                }
                    if ((($nachricht->content) != false) && (($nachricht->description) != true) && (($nachricht->title) != $alttitle) && (($nachricht->summary) != true)) 
{

$cont = ($nachricht->content);
$cont = trim($cont);

$alttitle=($nachricht->title);



                    echo "<li><a href=\"".htmlspecialchars($link, ENT_QUOTES)."\" target=\"_blank\" class=\"ketchup tooltip\" title=\"".htmlspecialchars(filtereHTML($cont), ENT_QUOTES)."\">".
                    htmlspecialchars(filtereHTML($nachricht->title), ENT_QUOTES)."</a></li>\n";

  /*
?>  

                    <li a href='>
                    <?php echo htmlspecialchars ($link, ENT_QUOTES); ?>
                    ' target='_blank'>" > class="ketchup tooltip" title="
                    <?php echo htmlspecialchars(filtereHTML($cont), ENT_QUOTES); ?> 
                    ">
                    <?php echo htmlspecialchars (filtereHTML($nachricht->title), ENT_QUOTES); ?> 
                    </a></li>
<?php

     */                
                }
}

                                     $start++;
                if ($start == $maxim) {break;
                }
            }
        }
    } else { echo "<br".SCHLIESSE."Feed konnte nicht geladen werden!\n";
    $laderr = 1;
    return $laderr;
    }
/*}*/
}
// Die Nebenfunktionen

function wandleTags($daten) {

    $daten = str_replace("content:encoded", "content", $daten);
    $daten = preg_replace_callback("/(&[#a-z0-9]+;)/",

        function($enti) {

            return htmlspecialchars(mb_convert_encoding($enti[1], "UTF-8", "HTML-ENTITIES"));
        }, $daten);

    if (strpos($daten, "><item>") !== false) {

        $eing  = array(

            "><item>"        => ">\r\n<item>",
            "><title>"       => ">\r\n<title>",
            "><link>"        => ">\r\n<link>",
            "><description>" => ">\r\n<description>",
            "><content>"     => ">\r\n<content>",
            "><summary>>"    => ">\r\n<summary>>",
            "><enclosure>"   => ">\r\n<enclosure>",
            "><pubDate>"     => ">\r\n<pubDate>",
            "><updated>"     => ">\r\n<updated>",
            "><published>"   => ">\r\n<published",
            "><author>"      => ">\r\n<author>",
            "><creator>"     => ">\r\n<creator>"
        );
        $daten = strtr($daten, $eing);
    }
    return $daten;
}
function filtereHTML($daten) {

    $daten = preg_replace("/<.+?>/is", " ", $daten);
    

   
    return $daten;
}
function filtereLinks($daten) {

   if (($pos = strpos($daten, "#")) !== false) {
        $daten = substr($daten, 0, $pos);
    } 
 
    $daten = preg_replace("/[^a-z0-9_\/=.:;&!?-]/is", "", $daten);
    return $daten;
}  



?>
 
Gibt es nicht einen ganz einfachen Weg, in der von Dir geschriebenen Funktion lesen() mit Ajax das Ergebnis in eine PHP-Datei zu speichern? Andererseits, fällt mir gerade ein, dass ich dann ja für jeden aufrufenden Nutzer eine Extradatei haben müsste, in der SEIN localstorage steht. Am besten, ich könnte während des Aufrufs meiner Start-Seite die function lesen() aufrufen und dann das Ergebnis (ohne es in eine php-Datei zu schreiben) in ein (globales) array packen um meine Standard - Medien mit dem Array zu vergleichen, bevor ich die feeds mit php auslese.
 
Zurück
Oben