Senden Sie das HTML-Formular auf der Selbstseite

103

Ich möchte, dass ein HTML-Formular an sich selbst gesendet wird. Wie verwende ich das actionAttribut?

  1. <form action="">
  2. <form action="#">
  3. <form action="some/address">
  4. <form>

Welches war vorzuziehen?

Oto Shavadze
quelle
1
Ich hoffe, Sie haben diesen Beitrag gesehen stackackflow.com/questions/1131781/…
Tariqulazam
Was ist der <doctype> Ihres Dokuments? Es wird Ihnen helfen, zu antworten.
Milche Patern
nur einfach nicht Aktion atribute verwenden
Milche Patern

Antworten:

124

Im Jahr 2013 können Sie bei all dem HTML5-Material einfach das Attribut 'action' weglassen, um ein Formular selbst einzureichen

<form>

Tatsächlich erlaubt der Unterabschnitt Formularübermittlung des aktuellen HTML5-Entwurfs nicht action = "" (leeres Attribut). Es ist gegen die Spezifikation.

Aus dieser anderen Stapelüberlauf-Antwort .

Milche Patern
quelle
1
Früher habe ich und bekam den Fehler , dass Maßnahmen nicht leer sein können, denke ich krank es einfach weglassen < ? Php $ _PHP_SELF?>
Drewdin
2
Ich bin verwirrt. Ist es w3 gültig, das actionAttribut insgesamt wegzulassen , aber nicht leer zu lassen?
Herr Martin
Muss ich dann mit $ _GET oder $ _POST auf die Parameter zugreifen?
Schwarz
21

Sie können das Aktionsattribut leer lassen. Das Formular wird automatisch auf derselben Seite gesendet.

<form action="">

Gemäß der w3c-Spezifikation muss das Aktionsattribut im Allgemeinen eine nicht leere gültige URL sein. Es gibt auch eine Erklärung für einige Situationen, in denen das Aktionsattribut möglicherweise leer bleibt.

Die Aktion eines Elements ist der Wert des Formatierungsattributs des Elements, wenn das Element eine Senden-Schaltfläche ist und über ein solches Attribut verfügt, oder der Wert des Aktionsattributs des Formularbesitzers, falls vorhanden, oder die leere Zeichenfolge.

Also sind beide noch gültig und funktionieren:

<form action="">
<form action="FULL_URL_STRING_OF_CURRENT_PAGE">

Wenn Sie sicher sind, dass Ihre Zielgruppe HTML5-Browser verwendet, können Sie das Aktionsattribut sogar weglassen:

<form>
Muratgozel
quelle
Können Sie bestätigen, dass das Attribut 'action' leer gelassen und validiert werden kann?
Milche Patern
4
Wird nicht validiert. : Ungültiger Wert für Attributaktion im Elementformular: Darf nicht leer sein.
Azd325
2
Gemäß der HTML5-Spezifikation ist eine leere Zeichenfolge als Aktion nicht zulässig: w3c.github.io/html/sec-forms.html#element-attrdef-form-action
Thomas
1
Dies ist das einzige, was für mich funktioniert. <br/> Link Die Inhaltsattribute für Aktion und Formatierung müssen, falls angegeben, einen Wert haben, der eine gültige nicht leere URL ist, die möglicherweise von Leerzeichen umgeben ist ........ falls vorhanden, oder die leere Zeichenfolge.
JoelBondurant
Das Konzept "nicht validieren" ist absurd, weil die einzige Person, die Ihr XML validieren kann, Sie sind. Das ist der Punkt von XML - Sie sagen eine Reihe von Regeln, die Sie für Ihr XML-Dokument beibehalten möchten, codieren sie in DTD und lassen den XML-Parser täuschend schwieriges Parsen durchführen. Dies ist ein Grund, warum XML auch heute noch wichtig ist - Sie können jedes gewünschte Modell verwenden, sei es JSON, Text, CSV, einen einfachen Transformator von diesem Format in XML schreiben, eine DTD für dieses XML schreiben und bam, Sie überspringen die Notwendigkeit Um Ihren eigenen Validator zu schreiben, hat XML das bereits getan!
Dmitry
21

Verwendung ?:

<form action="?" method="post">

Der Benutzer wird auf dieselbe Seite zurückgeschickt.

Le Codeur
quelle
Das ist fantastisch!
beppe9000
3
Nicht so toll. Dies würde alle Abfragezeichenfolgen der aktuellen URL entfernen, wenn sie vorhanden sind.
OMA
1
Ich möchte die
Abfragezeichenfolgen
12

Wenn Sie ein Formular mit PHP einreichen, stellen Sie sicher, dass Sie Folgendes verwenden:

action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"

für die Sicherheit.

Aber
quelle
-1

Sie können dies auf derselben Seite des Aktionsattributs tun: action='<yourpage>'

DarkAjax
quelle