Ajax Select Auwahl speichern und laden (über Cookie?)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ajax Select Auwahl speichern und laden (über Cookie?)

    Hallo Forum,

    dieser Post bezieht sich z.B. auf ein Ajax Auswahlmenü wie jenes welches hier besprochen wurde: easy-coding.de/ajax-auswahlmen…teren-listboxen-t584.html

    Ich suche nach einer Möglichkeit eine beliebige Auswahl des Menüs zu speichern und diese zu einem späteren Zeitpunkt wieder zu laden.

    Ich habe mir überlegt die einzelnen selektierten Werte in einen Cookie zu schreiben und diesen dann auszulesen, wenn die Auswahl wieder geladen werden soll. Später soll ein Benutzer sich eine beliebige Anzahl von zusammengestellten Auswahlmenüs speichern und diese wieder einzeln laden können.

    Nun, wie mache ich das? Die einzelnen Werte in einem Cookie zu speichern, ist ja nicht das Problem, aber wie lade ich diese bzw. wie aktualisiere ich beim Laden der Werte das Auswahlmenü, so dass die gewünschte Auswahl wieder angezeigt wird? Bezogen auf das Eingangs erwähnte Beispiel..?

    Danke vorab für jede Hilfestellung!!!

    MfG
    Um Rekursionen zu verstehen, muss man zuerst Rekursionen verstehen...
  • Hi,

    eine vorselektierte Auswahl mittels [coderwiki]Informationen/Cookie[/coderwiki] bekommst du recht schnell hin:

    Quellcode

    1. <?
    2. $cookie = '67;65'; //Beispiel
    3. $cookie = explode(';', $cookie);
    4. $options = array(123 => 'Computer', 67 => 'Elektronik', 65 => 'B&uuml;cher', 54 => 'M&ouml;bel');
    5. echo '<select name="">';
    6. foreach($options as $id => $title)
    7. echo "<option value=\"$id\"". (in_array($id, $cookie)&& $_GET['init']==1?'selected':'') .">$title</option>";
    8. echo '</select>';
    9. ?>


    damit die felder nur beim initialisieren gesetzt werden, übergibst du am besten in der url ein init=1
  • Hi d0nut,

    danke für den Hinweis; allerdings steh ich jetzt etwas auf dem Schlauch; wie lade ich das beim Aufruf des Cookies via Ajax nach? D.h. wie ersetze ich den Code mit dem bereits aufgebauten Menü aus dem Auswahlmenü-Beispiel mit dem Neuen Code, so dass das Menü komplett aufgebaut wird?
    Um Rekursionen zu verstehen, muss man zuerst Rekursionen verstehen...
  • hi,
    bei dem verschachtelten menü sähe dein cookie
    in etwa so aus
    Verantwortlich
    und(v)
    Aktionstyp(z)
    oder(vz)


    was wir uns zu folgendem einlesen (aufpassen: file() fängt natürlich bei 0 an zu zählen)

    Quellcode

    1. $cookie[1] = 'Veranwortlich';
    2. $cookie[2] = 'und(v)';
    3. $cookie[3] = 'Aktionstyp(z)';
    4. ...


    nun hast du ja löblicherweise eine switch-case verbaut..
    in dem neuen falle wäre eine if aber einfacher gewesen

    schauen wir uns mal diesen code-ausschnitt an

    Quellcode

    1. switch($_GET['dest'])
    2. {
    3. case '2':
    4. switch($_GET['s'])
    5. {
    6. case 'Verantwortlich':
    7. $menu = array('und(v)','oder(v)', 'Ende');
    8. $link = array('und','oder', 'Ende');


    das könntest du umfrickeln zu

    Quellcode

    1. if($cookie[2] != '' || $_GET['dest'] == 2)
    2. {
    3. if($_GET['dest'] == 'Verantwortlich' || $cookie[2] == 'Verantwortlich') {
    4. $menu = array('und(v)','oder(v)', 'Ende');
    5. $link = array('und','oder', 'Ende');
    6. }


    achso: das cookie soll nur eingelesen werden, falls du es über ?cookie=1 anforderst
    am besten per onLoad mit cookie=1 laden - bei onChange aber nicht