Thorsten: mehrere Forms aus verschiedenen Frames gleichzeitig abschicken

Hallo zusammen,

gibt es eine Möglichkeit mit JavaScript mehrere Forms aus verschieden Frames gleichzeitig zu submitten?

Gruß, Thorsten

  1. Ja, siehe 1. http://de.selfhtml.org/javascript/objekte/frames.htm
    und 2. http://de.selfhtml.org/javascript/objekte/forms.htm#submit
    das in Kombination sollte das Noetige tun

    1. Danke für die schnellen Antworten!

      Ich weiss, wie ich eine Form aus einem Frame aufrufen kann. Bei mir sieht das im Moment so aus:

      function submitFrames(){
        document.exam.current_exam.submit();
      }

      Nun soll aber eine zweite Form aus einem anderen Frame gleichzeitig mitgeschickt werden. Ich könnte jetzt eine zweite Anweisung wie: document.test.current_exam.submit();
      hinzufügen, jedoch wird dann die Seite zweimal geladen und ich erhalte nur die Variablen der zweiten Form. Gibts da einen anderen Weg?

      1. Danke für die schnellen Antworten!

        Ich weiss, wie ich eine Form aus einem Frame aufrufen kann. Bei mir sieht das im Moment so aus:

        function submitFrames(){
          document.exam.current_exam.submit();
        }

        Nun soll aber eine zweite Form aus einem anderen Frame gleichzeitig mitgeschickt werden. Ich könnte jetzt eine zweite Anweisung wie: document.test.current_exam.submit();
        hinzufügen, jedoch wird dann die Seite zweimal geladen und ich erhalte nur die Variablen der zweiten Form. Gibts da einen anderen Weg?

        Ja, gibt es:
        In jedes Frame eine Javascript-Funktion einbinden, die das betreffende Formular des Frames submitted und in deiner function_submitFrames() diese beiden Funktionen aufrufen. (Frame-Uebergreifende Funktionsaufrufe)

        1. Vielleicht habe ich es nicht richtig verstanden, aber das Endergebnis wird doch das gleiche bleiben. Ich rufe die Funktion des ersten Frames auf, dann reloadet meine Seite und ich erhalte das Post-Array. Dann ruf ich die Funktion des zweiten Frames auf, meine Seite reloadet wieder und ich erhalte das zweite Post-Array. Durch den reload verliere ich aber die Daten des ersten Post-Arrays. Oder seh ich hier was falsch?

          1. hi,

            Ich rufe die Funktion des ersten Frames auf, dann reloadet meine Seite

            warum tut sie das?

            und ich erhalte das Post-Array. Dann ruf ich die Funktion des zweiten Frames auf, meine Seite reloadet wieder

            warum tut sie das?

            Oder seh ich hier was falsch?

            _ich_ sehe immer noch nicht, wozu das ganze gut sein soll, bzw. was du überhaupt damit bezwecken/erreichen willst. klärst du uns mal auf?

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. Ok...ich habe eine Seite, die zwei Iframes enthält. Beide Iframes beinhalten jeweils eine Form, deren Daten ich gleichzeitig auslesen muss, da sie abhängig voneinander sind.
              Auf der Hauptseite habe ich einen submit-button, der, wenn er ausgelöst wird, mir die daten beider forms zurückgeben soll und einige der Daten in eine Datenbank schreibt.

              So, mein erster Gedanke war eine JavaScript function die mir beide forms liefert:

              function submitFrames(){
               document.exam.current_exam.submit();
                      document.exam_info.info.submit();
              }

              Diese function wird beim button aufgerufen:
              <input type="button" onClick="submitFrames()" value="Submit" class="button_grey"/>

              Das Problem hierbei ist, dass submit() sich genauso verhält, wie ein Submit-Button, d.h. die form-action wird ausgelöst, also eine neue Seite geladen. Weil danach, sofort wieder submit() ausgelöst wird, wird wieder eine neue Seite geladen und die Daten aus dem ersten Post-Array sind weg.
              Ich hoffe ich hab das Problem ein wenig klarer dargestellt.

              Gruß, Thorsten

              1. hi,

                Ok...ich habe eine Seite, die zwei Iframes enthält. Beide Iframes beinhalten jeweils eine Form, deren Daten ich gleichzeitig auslesen muss, da sie abhängig voneinander sind.

                und wieso ist die eingabe dann überhaupt auf zwei formulare verteilt, die noch dazu in unterschiedlichen frames stecken ...?

                wenn die daten zusammengehören, warum kann der nutzer sie dann nicht auch an _einer_ stelle eingeben?

                Das Problem hierbei ist, dass submit() sich genauso verhält, wie ein Submit-Button, d.h. die form-action wird ausgelöst, also eine neue Seite geladen.

                wenn du ein formular abschickst, wird die antwortseite des servers doch in genau das fenster oder frame geladen, wo sich auch das formular befand ...? (sofern du das nicht selber anders einstellst)

                Weil danach, sofort wieder submit() ausgelöst wird, wird wieder eine neue Seite geladen und die Daten aus dem ersten Post-Array sind weg.

                irgendwie wirfst du hier "neue Seite" und "instanz eines serverseitigen scriptes" ziemlich durcheinander.

                gruß,
                wahsaga

                --
                "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
                1. und wieso ist die eingabe dann überhaupt auf zwei formulare verteilt, die noch dazu in unterschiedlichen frames stecken ...?

                  Ok, es geht um eine Seite in der Studenten eine Klausur online schreiben können. Diese Seite hat zwei Iframes. Der erste dient zum eigentlichen Klausur schreiben. Der zweite dient zur Übersicht. Er enthält eine Liste der Klausur-Fragenummern und hinter jeder Fragenummer befindet sich eine Checkbox, die automatisch gecheckt wird wenn der Schüler die jeweilige Frage bearbeitet hat.
                  Es gibt einen weiteren Zusammenhang der Iframes: Wenn der Schüler den "Save"-Button drückt (der liegt im Hauptframe), werden alle Lösungen des Schülers in die DB geschrieben. Darüber hinaus soll im Info-Iframe mit einem Symbol hinter der jeweiligen Fragenummer angedeutet werden, welche Antworten jetzt in der DB stehen.

                  Nochmal kurz was passieren soll, wenn der Schüler den save-button klickt:
                  1. die Lösungen aus dem Klausur-Iframe werden in die DB geschrieben
                  2. im Info-Iframe wird angezeigt welche Fragen schon in der DB stehen
                  3. im Info-Iframe wird per Checkbox angezeigt welche Fragen der Schüler schon bearbeitet hat (der Schüler kann diese Checkboxen auch manuell checken/entchecken)

                  Ich hoffe, das hat jetzt nich noch mehr Verwirrung gestiftet...

                  Gruß, Thorsten

  2. hi,

    gibt es eine Möglichkeit mit JavaScript mehrere Forms aus verschieden Frames gleichzeitig zu submitten?

    sollte gehen, in dem du http://de.selfhtml.org/javascript/objekte/forms.htm#submit mit link:http://de.selfhtml.org/javascript/objekte/frames.htm#allgemeines] kombinierst.

    fraglich allerdings, wozu das ganze gut sein soll ...

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."