Haran: Nach Neuaufruf meiner Seite sind die Daten weg

Guten Tag,

ich verwende ein Array um sämtliche Daten eine Formulars zu speichern. Wird ein Drop-Down-Feld geändert wird durch JS-onclick meine Seite neu geladen. Dann ist aber mein Array leer bzw undefiniert.

Wie kann ich den Inhalt meines Arrays über das Seiten-Neuladen retten?

mfg

Haran

  1. Die Werte der Formularfelder werden ja in dem Fall des Drop-Down-Menüs nicht übergeben. Diese werden lediglich mittels den Submit-Buttons übermittelt.

    Es sollte funktionieren, wenn du mittels JavaScript das Formular absendest

    http://de.selfhtml.org/javascript/objekte/forms.htm#submit

    statt die Seite neu zu laden.

    MfG,

    McKinsey

    1. Die Werte der Formularfelder werden ja in dem Fall des Drop-Down-Menüs nicht übergeben. Diese werden lediglich mittels den Submit-Buttons übermittelt.

      Es sollte funktionieren, wenn du mittels JavaScript das Formular absendest

      Ich sende das Formular im JavaScript ab.

      Aber das Array ist dann "verschwunden" - ich müsste es aus den Formular-Daten neu befüllen - aber ich kann nicht alle Daten im Array aus den Formulardaten gewinnen.

      Wenn ich das erste mal eine Drop-Down-Box ändere wird der Formular-Inhalt korrekt dargestellt aber wenn ich dann noch ein 2tes Drop-Down-Feld ändere geht die erst Änderung verloren, da diese NUR im Array hinterlegt ist.

      Bisher habe ich beim Seitenaufruf die Daten aus einer Datenbank abgerufen - daher verschwinden die Änderungen der ersten Runde sobald ich eine 2te Änderung mache.

      Daher wollte ich das Array der ersten Runde nur weiter ergänzen - aber das exestiert ja nicht mehr.

      Wie kann ich also das Array so global halten, das es mir beim Neuaufruf der Seite wieder zur verfügung steht?

      mfg

      Haran

      1. Hello,

        Wie kann ich also das Array so global halten, das es mir beim Neuaufruf der Seite wieder zur verfügung steht?

        eigentlich nur über Umwege:

        1. ein Cookie mit den Inhalten füllen
        2. einen zweiten Frame platzieren, der nicht neu geladen wird und demnach die Daten erhält
        3. die Daten ebenfalls zum Server schicken und wieder ausliefern bzw. dort in einer Session ablegen und nur Änderungen verschicken.

        MfG
        Rouven

        --
        -------------------
        When the only tool you've got is a hammer, all problems start to look like nails.
        1. Hello,

          Wie kann ich also das Array so global halten, das es mir beim Neuaufruf der Seite wieder zur verfügung steht?
          eigentlich nur über Umwege:

          1. ein Cookie mit den Inhalten füllen
          2. einen zweiten Frame platzieren, der nicht neu geladen wird und demnach die Daten erhält
          3. die Daten ebenfalls zum Server schicken und wieder ausliefern bzw. dort in einer Session ablegen und nur Änderungen verschicken.

          MfG
          Rouven

          Hallo,

          Danke für die Anregungen.

          An Cookies hatte ich schon gedacht, aber lt Tutorial auf http://tut.php-quake.net/ gehn damit keine Arrays - ich denke ich setz mich morgen an die Sessions.

          Danke an alle

          Haran

      2. Hello,

        wenn es nicht um sicherheitsrelevante Dinge Deines Scriptes geht, kannst Du die Daten auch ohne Session weiterreichen. Dazu benutzt Du einfach ein einziges Hidden-Field im Formular.

        Array serialisieren  http://de3.php.net/manual/en/function.serialize.php
        Ergebnis codieren z.B. mit Base64_encode() http://de3.php.net/manual/en/function.base64-encode.php
        Codierte Daten ins hidden Feld schreiben
        absenden zum Client

        mit dem Post wiederbekommen
        Daten decodieren mit base64_decode()
        Ergebnis deserialisieren
        Array ist wieder da

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Grüße
    da dein Thema PHP-getagt ist, würde ich serverseitige $_SESSION als zwischnespeicher vorshclagen
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
    Boccaccio