aktion erst nach schlaufe ausführen
Hallo zusammen
Mit folgendem Code schreibe ich ganz einfach alle Formulardaten die übermittelt werden in ein hidden feld.
Code: In Zwischenablage kopieren (nur IE)
Nun möchte ich, dass das Formular automatisch versendet wird, aber erst wenn alle Daten geschrieben wurden. Dies habe ich folgender massen gemacht:
Code: In Zwischenablage kopieren (nur IE)
Das Problem ist nun, dass das Formular schon verschickt wird, bevor die foreach funktion alle Variabeln in ein Formularfeld geschrieben hat.
Kann ich nun irgendwie abfangen, ob die foreach funktion vollständig verarbeitet wurde und dasFormular erst dann abgeschickt wird?
Vielen Dank für die Hilfe
Kasi
Antworten
Hallo,
Du arbeitest mit PHP auf einen anderen "Ebene" als mit HTML. Über PHP arbeitest du auf dem Server. Wenn PHP-Fertig ist, hast du eine HTML-Datei erstellt. Diese wird an den Browser gesendet und dort ausgeführt. Daher bekommt der Browser zur gleichen Zeit das Formular und den Sende-Befehl. Du musst also über Javascript abfragen ob alle Felder ausgefüllt sind, da JavaScript zur Laufzeit arbeitet. Mit PHP arbeitest du NIE zur Laufzeit, sondern immer vorher. Wie du mit JavaScript arbeitest kannst du i SelfHTML erlesen.
http://www.teamone.de
Mein Tipp. Jeder Besucher einer Internetseite schafft es, nach dem Ausfüllen eines Formulares auch noch einen Submit-Button zu klicken. Bin ich mir sicher...:)
Ansonsten empfehle ich dir im PHP-Manual mal die Grundsätze einer Scriptsprache zu erlesen. Da steht genug info drinnen.
Das Manual findest du auf dieser Seite. (Blick nach Rechts...)
Gruß
Stefan
2.
Vieln Dank für die Antwort
Warscheinlich habe ich mein Problem nich klar formuliert. Das Formular wurde bereits auf einer vorherigen Seite mit klick auf einen submit button an eine Drittseite verschickt (Kreditkarten zahlung). Danach werden alle Variabeln wieder zurück geschickt, welche ich mit oben genannte PHP Code abfange (foreach). Wenn ich nun richtig verstanden habe, wird JavaScript erst dann ausgeführt, wenn PHP verarbeitet wurde. Dann würde folgender script
<SCRIPT language=\"JavaScript\">document.frmShop.submit()</SCRIPT>
erst ausgeführt, wenn die PHP Funktion foreach durchlaufen wurde und in meine Fall alle input felder geschriben hat.
Ist das richtig so?
Gruss
3.
PHP führt der Server aus.
JavaScript der Browser. JavaScript wird von PHP nicht verarbeitet und hat mit PHP nichts zu tun. Du erstellt über PHP eine fertige HTML seite. Diese wird an den Browser gesendet und erst dieser verarbeitet die HTML-Datei von oben nach unten, incl der eingegebenen JavaScript Befehle.
4.
Einfacher ist es glaub ich für dich wenn du den Header("Location: test.php?hallo=ja");-Befehl benutz oder die Daten per Meta-Tag refreshst.
5.
Danke für deine Hilfe.
Denke das mit Server- Browserseitig habe ich jetzt verstanden :)
Scheint nun zu klappen.
Gruss