MichaelR: Form wird in Moz 1.3a nicht submitted ???

Hallo,

per PHP erzeuge ich ein Form mit dem Aussehen:

<form name="SendDataBack" action="index.php?task=register" method="post">
<input type="hidden" name="regtitle" value="blabla" />
<input type="hidden" name="regname" value="foo foo" />
<!-- etc. -->
</form>
<script type="text/javascript">document.SendDataBack.submit();</script>

Allerdings wird dieses Form in Mozilla 1.3a nicht an den Browser zurückgesendet, sondern es erscheint eine leere Seite und im Quelltext eben dieses Form von oben.
Die JS-Console von Moz sagt, dass das Form keine Properties hätte, hat es aber doch ??

Irgendwelche Ideen jemand ? Danke.

Grüße
Michael

  1. Was soll denn /> am Schluss jedes input-Feldes ?
    So müsste es funktionieren:
    <form name="SendDataBack" action="index.php?task=register" method="post">
    <input type="hidden" name="regtitle" value="blabla">
    <input type="hidden" name="regname" value="foo foo">
    </form>
    <script type="text/javascript">document.SendDataBack.submit();</script>

    Aber wenn das sowieso sofort nach laden abgeschickt werden soll,
    lass den Besucher doch einfach auf die Seite
    index.php?task=register&regtitle=blabla&regname=foo+foo
    weiterleiten.
    Beispiel:
    <meta http-equiv="redirect" content="0, URL=index.php?task=register&regtitle=blabla&regname=foo+foo"

    oder

    <script>
    window.href.location="index.php?task=register&regtitle=blabla&regname=foo+foo";
    </script>

    1. Hi,

      die /> sind einfach nur XHTML. Das ist schon in Ordnung so.
      Ansonsten hattest du recht.

      Noch ein Gedanke ist, dass sich das hier beißt:

      action="index.php?task=register" method="post">

      task=register ist eine get-Variable.

      versuch mal noch ein ein hidden-Field einzubauen.
      <input type="hidden" name="task" value="register" />

      und nur action="index.php" zu schreiben.

      Ist dann vom Inhalt dasselbe, nur anders notiert. Vielleicht liegts daran.

      1. Hi,

        Noch ein Gedanke ist, dass sich das hier beißt:

        action="index.php?task=register" method="post">

        task=register ist eine get-Variable.

        versuch mal noch ein ein hidden-Field einzubauen.
        <input type="hidden" name="task" value="register" />

        und nur action="index.php" zu schreiben.

        Ist dann vom Inhalt dasselbe, nur anders notiert. Vielleicht liegts daran.

        Danke für die Antwort.

        Vielleicht irr ich mich, aber wenn der Browser das mit Get und Post durcheinander bringen sollte (ich schicke POSt und frage diese ab, und frage auch ab ob Get (task= ...) vorhanden ist, dann müsste ich doch zumindest zur index.php kommen, oder ?
        Aber der Browser Moz schickt überhaupt nichts weiter, sondern beläst das Form wie es ist in der Seite ???

        Michael

    2. Hallo,

      Was soll denn /> am Schluss jedes input-Feldes ?
      So müsste es funktionieren:
      <form name="SendDataBack" action="index.php?task=register" method="post">
      <input type="hidden" name="regtitle" value="blabla">
      <input type="hidden" name="regname" value="foo foo">
      </form>
      <script type="text/javascript">document.SendDataBack.submit();</script>

      Ich glaube nicht, dass es daran liegt !?!
      Das />  steht für xhtml.

      Dein zweiter Vorschlag war der Vorläufer vor diesem Form-Feld, da ich aber mit Strings hantieren muss, die ganz unterschiedlich sein können (Leerräume, Umlaute, etc.) ist das einfache URL-Anhängen für mich schlechter.

      Michael

  2. Hi,

    Allerdings wird dieses Form in Mozilla 1.3a nicht an den Browser zurückgesendet, sondern es erscheint eine leere Seite und im Quelltext eben dieses Form von oben.

    Hast Du es schon mal mit einer stabilen Version des Mozilla (also nicht-Alpha, nicht-Beta) probiert?

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    1. Hi,

      Hast Du es schon mal mit einer stabilen Version des Mozilla (also nicht-Alpha, nicht-Beta) probiert?

      Nein ! - Wirklich schafft das das Problem bei Seite ...

      WErde das gleich mal probieren

      Ciao
      Michael

    2. Hi Andreas,

      Hast Du es schon mal mit einer stabilen Version des Mozilla (also nicht-Alpha, nicht-Beta) probiert?

      In Mozilla 1.0 erhalte ich das gleiche Resultat.
      In Netscape 6.2 wird alles einwandfrei durchgeführt.
      (Und in IE 5.5 natürlich auch :-)

      Ich bin etwas ratlos :-(

      Michael

  3. Moin!

    <form name="SendDataBack" action="index.php?task=register" method="post">
    <input type="hidden" name="regtitle" value="blabla" />
    <input type="hidden" name="regname" value="foo foo" />
    <!-- etc. -->
    </form>
    <script type="text/javascript">document.SendDataBack.submit();</script>

    Mach mal einen Button in das Form, der dieses window.document.SendDataBack.submit() ausfuehrt, wenn er gedrueckt wird. Wenn das funktionieren sollte, dann ist es ein Timingproblem. Das Formular ist zu dem Zeitpunkt, wo das Script ausgefuehrt wird, noch nicht vollstaendig aufgebaut. Dem koenntest Du mit window.setTimeout() begegnen.

    HTH && So long

    --
    Bier trinken fetzt!!!
    1. nAbend,

      <form name="SendDataBack" action="index.php?task=register" method="post">
      <input type="hidden" name="regtitle" value="blabla" />
      <input type="hidden" name="regname" value="foo foo" />
      <!-- etc. -->
      </form>
      <script type="text/javascript">document.SendDataBack.submit();</script>

      Mach mal einen Button in das Form, der dieses window.document.SendDataBack.submit() ausfuehrt, wenn er gedrueckt wird. Wenn das funktionieren sollte, dann ist es ein Timingproblem. Das Formular ist zu dem Zeitpunkt, wo das Script ausgefuehrt wird, noch nicht vollstaendig aufgebaut. Dem koenntest Du mit window.setTimeout() begegnen.

      Danke - das mit dem setTimeout klappt.

      Nun die Frage: bislang dachte ich, der Browser fängt oben im Dokument an und geht dann runter und interpretiert so "Zeile für Zeile", außer bei z. B. JS da "merkt" er sich den Funktionsapparat und führt in dann nur bei explizitem Aufruf (mittels Event-Handler oder mittels <script>Do()</script> und dergleichen aus).

      Mein Formular hat ja zunächst das Form und dann erst das JS - es dachte ich erst würde das Form vollkommen abgehandelt und wenn das der Fall ist, dann der JS-Aufruf ?? Aber wenn der Browser beim Ausführen des Submit() das Form noch gar nicht "interpretiert"/dargestellt hat - welche Reihenfolge gilt dann ??

      Danke noch für die Nachfrage.

      Grüße
      Michael

      1. Re!

        Mein Formular hat ja zunächst das Form und dann erst das JS - es dachte ich erst würde das Form vollkommen abgehandelt und wenn das der Fall ist, dann der JS-Aufruf ?? Aber wenn der Browser beim Ausführen des Submit() das Form noch gar nicht "interpretiert"/dargestellt hat - welche Reihenfolge gilt dann ??

        Du machst hier Annahmen ueber die interne Verarbeitungsstruktur der Browsersoftware. Das ist wirklich keine gute Idee. Bisher stimmte die Annahme fuer die meisten Browser offenbar, aber das war wohl eher Zufall. Wenn nun Mozilla verschiedene Aufgaben parallel ausfuehrt (z.B. Quelltext parsen und DOM erstellen versus JavaScript verarbeiten[1]), dann klappt das so eben nicht mehr. Mit dem setTimeout habe ich aber auch eine ungerechtfertigte Annahme gemacht (siehe auch mein anderes Posting). Das koennte sich als tickende Zeitbombe erweisen. Verwende also besser onLoad.

        [1] Die JavaScript-Engine im Mozilla (SpiderMonkey) ist ein voellig eigenstaendiger Softwareteil, den man auch aus Mozilla herausgeloest verwenden kann. http://mozilla.org/js/

        So long

        --
        Bier trinken fetzt!!!
        1. Guten Morgen,

          Du machst hier Annahmen ueber die interne Verarbeitungsstruktur der Browsersoftware. Das ist wirklich keine gute Idee. Bisher stimmte die Annahme fuer die meisten Browser offenbar, aber das war wohl eher Zufall. Wenn nun Mozilla verschiedene Aufgaben parallel ausfuehrt (z.B. Quelltext parsen und DOM erstellen versus JavaScript verarbeiten[1]), dann klappt das so eben nicht mehr. Mit dem setTimeout habe ich aber auch eine ungerechtfertigte Annahme gemacht (siehe auch mein anderes Posting). Das koennte sich als tickende Zeitbombe erweisen. Verwende also besser onLoad.

          Ja, OnLoad wird wohl die optimalste Lösung sein.

          Ich glaube, dass noch viele diese Vorstellung der sukzessiven Abarbeitung eines Webdokuments im Browser haben...

          Ciao
          Michael

    2. Hi Calocybe,

      <script type="text/javascript">document.SendDataBack.submit();</script>
      Mach mal einen Button in das Form, der dieses window.document.SendDataBack.submit() ausfuehrt, wenn er gedrueckt wird. Wenn das funktionieren sollte, dann ist es ein Timingproblem. Das Formular ist zu dem Zeitpunkt, wo das Script ausgefuehrt wird, noch nicht vollstaendig aufgebaut. Dem koenntest Du mit window.setTimeout() begegnen.

      ist nicht genau für solche Szenarien der onload-Event vorhanden?

      Viele Grüße
            Michael

      --
      T'Pol: I apologize if I acted inappropriately.
      V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
      1. Re!

        ist nicht genau für solche Szenarien der onload-Event vorhanden?

        Stimmt. Allerdings feuert der meines Wissens erst dann, wenn auch alle weiteren Dateien wie Bilder oder CSS-Dateien fertig geladen sind. Das ist nicht dasselbe sein wie "Aktion sobald wie moeglich ausfuehren". Aber wenn ich's mir recht ueberlege, ist das setTimeout immer noch gefaehrlich -- es mag in diesem Fall funktionieren, beim naechsten Browser ist das Timeout aber vielleicht schon zu klein bemessen.

        So long

        --
        Bier trinken fetzt!!!