Benjamin Piltz: Refresh der html-Fromulare nach dem Abschicken unterbinden?

Hallo!

Meine HTML-Formulare haben irgendwie die unschöne Eigenschaft direkt nach dem Abschicken nicht die zu letzt eingegebenen Werte anzuzeigen, sondern die vorletzten. Ich verwende die Post-Method -möglicherweise liegt es daran. GET gefällt mir aufgrund der dargestellten URL nicht wirklich. Das Formular wird über Sessionvariablen mit den zu letzt eingegebenen Werten initialisiert, das Problem ist aber, dass der Refresh des Formulars vor dem Beschreiben der Sessionvariablen ausgelöst wird. Ich muß also nach dem Beschreiben der Sessionvariablen einen zusätzlichen Neuaufbau der Seite generieren, was ein irritierendes hin und herflippen der Formularinhalte zur Folge hat.

Weiß jemand wie man das formulareigene Refresh unterbinden kann?

  1. Moin,

    Weiß jemand wie man das formulareigene Refresh unterbinden kann?

    Es gibt keine Formulareigenen refreshs...
    Das Problem liegt in dem Skript welches Dein Formular verarbeitet.
    bzw. solltest Du beschreiben, was Dein Formular überhaupt tut.
    Mit POST und GET hat das gar nichts zu tun.
    Vielleicht doch mal hochladen oder ein wenig Quelltext posten?
    Ich ahne allerdings schlimmes..
    TomIRL

    1. Moin,

      Weiß jemand wie man das formulareigene Refresh unterbinden kann?

      Es gibt keine Formulareigenen refreshs...
      Das Problem liegt in dem Skript welches Dein Formular verarbeitet.
      bzw. solltest Du beschreiben, was Dein Formular überhaupt tut.
      Mit POST und GET hat das gar nichts zu tun.
      Vielleicht doch mal hochladen oder ein wenig Quelltext posten?
      Ich ahne allerdings schlimmes..
      TomIRL

      HI,

      die entsprechende Zeile sieht z.B. so aus:

      <input name='$input_name[$s]' size='25' value='$pres_values[$s]'>

      Mit Refreshs meine ich, dass sobald das Formular via Submit-Button abgeschickt wurde, sich der Formularinhalt aktualisiert - sprich die Werte, die bei "value=" stehen, werden im Formular dargestellt. Wenn beispielsweise nichts da steht (value='') wird nach dem Abschicken das Formular an dieser Stelle leer sein. Ich hätte aber gerne, dass die zuvor eingegebenen Werte erhalten bleiben. Wie geht das???

      Gruß, Ben

      1. Hallo

        Mit Refreshs meine ich, dass sobald das Formular via Submit-Button abgeschickt wurde, sich der Formularinhalt aktualisiert - sprich die Werte, die bei "value=" stehen, werden im Formular dargestellt. Wenn beispielsweise nichts da steht (value='') wird nach dem Abschicken das Formular an dieser Stelle leer sein. Ich hätte aber gerne, dass die zuvor eingegebenen Werte erhalten bleiben. Wie geht das???

        Trage die vom Formular übergebenen Werte in den value ein.

        <?php
        // Prüfung der übergebenen Werte
        ...
        ?>
        <input type="text" name="bla" value="
        <?php
        if (isset($_POST["bla"])
           {
           echo $_POST["bla"];
           }
        else
           {
           echo "blubber";
           // Wenn am Anfang nichts vorgegeben sein soll, lasse den "else"-Zweig weg.
           }
        ?>
        " size="20" maxlegth="20">
        ...

        Wenn aber vom Benutzer kein Wert in das Formular eingetragen wurde und keine Vorbelegung definiert ist, wird das Feld nach dem Absenden des Formulars logischerweise immer leer sein.

        Tschö, Auge

        --
        Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
        (Victor Hugo)
        Veranstaltungsdatenbank Vdb 0.1
        1. Danke, Auge!

          Genau so mache ich das auch.
          Wie in meinem ersten Post beschrieben, übergebe ich die Einträge einer Sessionvariablen, die aber leider in HTML nicht schnell genug upgedatet wird, mit dem Effekt, dass nach dem Absenden immer zuerst der vorhergehende Wert der Sessionvariablen im Formular angezeigt wird. Erst nach einem erneuten Refresh der ganzen Seite wird der richtige Wert im Formular angezeigt. Und genau das geht mir echt auf den Nerv.

          Gruß, Ben

          1. Hallo

            Genau so mache ich das auch.

            Offensichtlich nicht. :-)

            Wie in meinem ersten Post beschrieben, übergebe ich die Einträge einer Sessionvariablen, die aber leider in HTML nicht schnell genug upgedatet wird,

            HTML kennt keine Sessionvariablen. Du benutzt also offenbar eine serverseitige (Skript?)sprache. Und dort machst du offenbar einen Fehler, den ich so, mit den mir zur Verfügung stehenden Informationen, nicht zu ergründen vermag.

            mit dem Effekt, dass nach dem Absenden immer zuerst der vorhergehende Wert der Sessionvariablen im Formular angezeigt wird. Erst nach einem erneuten Refresh der ganzen Seite wird der richtige Wert im Formular angezeigt.

            Wie gesagt, in deinem Skript muss ein logischer Fehler vorliegen.

            Tschö, Auge

            --
            Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
            (Victor Hugo)
            Veranstaltungsdatenbank Vdb 0.1