3.7k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo Leute,

ich habe folgende Situation:

Auf einer Seite ist ein HTML Formular, das lediglich aus einigen Radio-Buttons und einem Submit-Knopf besteht. Der User soll einen Radio-Buttion auswählen und per Submit das Formular versenden können. Sobald auf Submit geklickt wird soll eine Javascript-Funktion aufgerufen werden, die das Formular versendet und anschließend alle Formular-Elemente ausblendet und eine Medlung einblendet.

Das Ersetzen der Formular-Elemente durch eine Meldung funktioniert. Ebenso kann ich das Formular per "document.form1.submit();" versenden. Allerdings klappt nicht beides zusammen, denn sobald das Formular verschickt wird, wird die Seite neu geladen und das Skript kommt gar nicht bis zur Ausgabe der Meldung...

Kann ich das "neu laden" der Seite irgendwie unterbinden?

Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt, ansonsten bitte nachfragen.


Gruß,
Xeno

7 Antworten

0 Punkte
Beantwortet von fireflyer Einsteiger_in (51 Punkte)
sende das formular in ein iframe ab (der 1px x 1px oder so groß ist)
dann wird der iframe neu geladen, nicht aber die komplette seite


mfg fireflyer
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Du kannst auch AJAX bzw. XMLHTTPRequest verwenden, um dein Formular abzuschicken, entweder im onsubmit-Eventhandler des Formulars oder im onclick-Event des "submit"-Buttons. Wichtig ist, daß der EventHandler false zurückgibt, um das Standard-Verhalten des Formulars zu unterbinden.
0 Punkte
Beantwortet von
Hallo fireflyer,

danke für die schnelle Antwort. Kannst du mir bitte mehr Details zu deiner Lösung posten, oder einen Link geben, wo das beschrieben wird?

Ich kann mir gerade nicht vorstellen wie das aufgebaut sein muss... Das Formular wäre ja dann trotzdem im "Hauptframe", da der Benutzer es sehen soll.



Gruß,
Xeno
0 Punkte
Beantwortet von
@Supermax:
Mit AJAX habe ich leider (noch) keine Erfahrung. Auf die "Schnelle" würde das somit nicht klappen...

Danke trotzdem für den Hinweis.


Gruß,
Xeno
0 Punkte
Beantwortet von fireflyer Einsteiger_in (51 Punkte)
also du baust dir eine seite und irgendwo auf diese seite machst du ein iframe
http://de.selfhtml.org/html/frames/eingebettete.htm#definieren

dein formular gestaltest du mit dem target attribut das auf diesen iframe zielt (sry für die ausdrucksweise^^)
http://de.selfhtml.org/html/formulare/definieren.htm#zielfenster

wenn dann das formular abgesendet wird lädt sich die seite nicht neu sondern nur der iframe

mfg fireflyer

ps: ajax ist aktueller und wenn du weiterhin in diesem sektor arbeiten willst solltest du es unbedingt lernen :)
0 Punkte
Beantwortet von
nutze dies AJAX-Beispiel, lass dabei einfach die Funktion ausgeben deine Erfolgsmeldung ausgeben statt http.responseText.
0 Punkte
Beantwortet von
Hallo,

danke nochmal an alle für die Antworten und Tipps.

@fireflyer: Ich hab die Version mit dem iFrame hinbekommen und es funktioniert genau so wie ich es mir vorgestellt habe.

Das AJAX-Beispiel werde ich mir auf jeden Fall bei Gelegenheit anschauen. Im Moment ist halt der Zeitdruck etwas groß.


Gruß,
Xeno
...