Formular an sich selbst schicken

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Jakob, 17.09.2006.

  1. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    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.
     
  2. MacEnroe

    MacEnroe MacUser Mitglied

    Beiträge:
    15.964
    Zustimmungen:
    1.392
    Registriert seit:
    10.02.2004
    Sowas wie eine Endlosschleife, um Server lahmzulegen?
     
  3. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    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?
     
  4. b.legt210

    b.legt210 MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    4
    Registriert seit:
    01.03.2006
    was spricht gegen <form action=""> ???
    Ich verwende das auch oft und es funktioniert eigentlich sehr zuverlässig.
     
  5. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.316
    Registriert seit:
    13.09.2004

    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!
     
  6. mores

    mores MacUser Mitglied

    Beiträge:
    3.575
    Zustimmungen:
    106
    Registriert seit:
    23.12.2003
    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.
     
  7. b.legt210

    b.legt210 MacUser Mitglied

    Beiträge:
    81
    Zustimmungen:
    4
    Registriert seit:
    01.03.2006
    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?
     
  8. mores

    mores MacUser Mitglied

    Beiträge:
    3.575
    Zustimmungen:
    106
    Registriert seit:
    23.12.2003
    nur war das vom themenstarter so gewünscht.
    "ohne skriptsprache".
     
  9. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    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!
     
  10. Marzelpan

    Marzelpan MacUser Mitglied

    Beiträge:
    58
    Zustimmungen:
    0
    Registriert seit:
    31.10.2003
    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
     
Die Seite wird geladen...

Diese Seite empfehlen