Formular an sich selbst schicken

Jakob

Jakob

Aktives Mitglied
Thread Starter
Dabei seit
05.01.2004
Beiträge
1.070
Reaktionspunkte
21
Hallo,

gibt es einen standardisierten bzw. funktionierenden Weg, einem Formular zu sagen, dass es sich selbst wieder aufrufen soll?

Also sowas wie
<form action="<?=$PHP_SELF?>">

Nur eben ohne Skriptsprache.

In den von mir getesteten Browsern funktionierte
<form action="">

Aber es sollte halt überall funktionieren.
 
Sowas wie eine Endlosschleife, um Server lahmzulegen?
 
Das kann keine Endlosschleife sein, sondern schickt auf Knopfdruck das Formular noch mal an sich selbst, z.B. zur Validierung oder zum mail-Versand etc.

Hintergrund ist, dass es mehrere Kontaktformulare gibt, die unterschiedlich heißen, aber aus dem gleichen template ihr markup beziehen. Ich dachte es gibt eine Möglichkeit, in das template einen <form>-tag so einzubauen, dass jedes Formular dies nutzen kann.

Aber HTML scheint dafür keine Möglichkeit zu bieten, oder?
 
was spricht gegen <form action=""> ???
Ich verwende das auch oft und es funktioniert eigentlich sehr zuverlässig.
 
b.legt210 schrieb:
was spricht gegen <form action=""> ???
Ich verwende das auch oft und es funktioniert eigentlich sehr zuverlässig.


Meines Wissens ist diese Kurzform auch genau dafür da! Apache behandelt sie auch immer so, wie andere Web-Server darauf reagieren weiß ich leider nicht. Der Browser hat damit sicher nichts zu tun, der sendet ja nur brav den HTTP-Request mit der leeren action!
 
ich versteh das problem nicht.
wenn das formular "formular.html" heisst, trag das doch einfach in die action ein.

wenn du kein PHP verwenden kannst weil der server das nicht unterstützt musste eben den dateinamen händisch eingeben.
 
naja, bei "festen" Adressen mag das ja noch angehen. Habe ich aber etwas der Art: "formular.php?menue_punkt=123&noch_n_paramteter=456" wird's schon etwas schwieriger.
Warum sich also die "unnötige" Mühe machen wenn's mit action="" geht?
 
nur war das vom themenstarter so gewünscht.
"ohne skriptsprache".
 
wegus hat mit seinem Hinweis Recht, dass es ja um den webserver geht und ein browser da gar keinen Einfluss hat…

Schön, dass ihr auch Erfahrungen damit gemacht habt.

@mores: Es sind PHP-Formulare, die HTML-Templates nutzen. Dort werden dann [PLATZHALTER] durch den eigentlichen code ersetzt. Dabei nutzen manche Formulare das eigentlich gleiche Template, bis eben auf das action="[…]".

Danke Euch allen!
 
wegus schrieb:
Meines Wissens ist diese Kurzform auch genau dafür da! Apache behandelt sie auch immer so, wie andere Web-Server darauf reagieren weiß ich leider nicht. Der Browser hat damit sicher nichts zu tun, der sendet ja nur brav den HTTP-Request mit der leeren action!

Das ist so nicht richtig. Der Browser wertet das action-Attribut des Formulars aus und sendet abhängig vom method-Attribut einen GET- oder einen POST-Request an den zur URL im action-Attribut gehörigen Webserver. Als Parameter des Requests übergibt er den Rest der URL, also z.B. bei "http://www.bla.org/blubb.html" wird ein Request an "www.bla.org" gesendet mit Parameter "/blubb.html". Im GET-Fall hängt er die Formularfelder als Parameter an die URL an (z.B. /index.php?param1=1&param2=bla), bei POST werden die Formulardaten im Body des Requests gesendet. Also: Der Browser ist für die Interpretation des action-Attributes verantwortlich.

Wenn ich den URL-RFC richtig verstehe, verweist eine leere URL auf die Basis-URL. Wenn im HTML keine Basis-URL explizit gesetzt wird, ist das die URL des aktuellen Dokuments. Also verweist action="" auf das aktuelle Dokument. Wenn sich der Browser jetzt noch an die Standards hält ist alles gut :)

Marcel
 
Lass das Action-Attribut einfach weg,
wenn das XHTML-Kompatibel ist.
 
Ja, action einfach weglassen geht normalerweise. Ich hatte gestern allerdings die Beobachtung gemacht, daß mein Handybrowser dann das Formular nicht abschicken will.
 
Ohne action-Attibut ist es kein gültiges HTML. Ich habe schon action="#" gesehen, was das gleiche sein dürfte wie action="".
 
Einfach hinter action die aktuelle PHP Datei angeben? oO
<form action="form.php">

Versuchs mal damit.
mfg tan

edit: sorry, war heut morgen was früh. Wurd ja leider schon gesagt :(
Ich kann da leider auch nur noch die Funktionsvariable $_SERVER['PHP_SELF'].

Gute Gelingen weiterhin
 
Zuletzt bearbeitet:
Zurück
Oben Unten