Prześlij formularz HTML na własnej stronie


Odpowiedzi:


124

W 2013 roku, w przypadku wszystkich elementów HTML5, możesz po prostu pominąć atrybut „action”, aby samodzielnie przesłać formularz

<form>

W rzeczywistości podsekcja Przesyłanie formularza w bieżącej wersji roboczej HTML5 nie zezwala na działanie = "" (pusty atrybut). Jest to niezgodne ze specyfikacją.

Z tej innej odpowiedzi Stack Overflow .


1
Użyłem <? Php $ _PHP_SELF?> I otrzymałem błąd, że akcja nie może być pusta, myślę, że źle, po prostu zostaw to
— Drewdin

2
Jestem zmieszany. Czy w3 prawidłowe jest pozostawienie actionatrybutu razem, ale nie pozostawienie go pustego?
— pan martin

Czy muszę wtedy uzyskać dostęp do parametrów za pomocą $ _GET lub $ _POST?
— Czarny

22

Zastosowanie ?:

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

Odeśle użytkownika z powrotem na tę samą stronę.


To jest niesamowite!
— beppe9000

3
Nie tak niesamowite. Spowoduje to usunięcie wszystkich ciągów zapytań z bieżącego adresu URL, jeśli je ma.
— OMA

1
Chcę usunąć ciągi zapytania: 3
— VoidZA

21

Możesz pozostawić atrybut akcji pusty. Formularz zostanie automatycznie przesłany na tej samej stronie.

<form action="">

Zgodnie ze specyfikacją w3c atrybut działania musi być ogólnie niepusty prawidłowym adresem URL. Istnieje również wyjaśnienie niektórych sytuacji, w których atrybut akcji może pozostać pusty.

Akcją elementu jest wartość atrybutu formaction elementu, jeśli element jest przyciskiem Prześlij i ma taki atrybut, lub wartość atrybutu akcji właściciela formularza, jeśli ma, lub pusty ciąg.

Więc oba nadal są ważne i działają:

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

Jeśli masz pewność, że Twoi odbiorcy korzystają z przeglądarek HTML5, możesz nawet pominąć atrybut działania:

<form>

Czy możesz potwierdzić, że atrybut „action” może pozostać pusty i potwierdzić?
— Milche Patern

4
Nie sprawdza. : Zła wartość dla działania atrybutu w postaci elementu: nie może być pusta.
— Azd325

2
Zgodnie ze specyfikacją HTML5 pusty ciąg nie jest dozwolony jako akcja: w3c.github.io/html/sec-forms.html#element-attrdef-form-action
— Thomas

1
To jedyna rzecz, która mi pasuje. <br/> link Atrybuty action i formaction content, jeśli zostały określone, muszą mieć wartość będącą prawidłowym niepustym adresem URL, potencjalnie otoczonym spacjami ........ jeśli taki posiada, lub pustym ciągiem.
— JoelBondurant

koncepcja „nie sprawdza poprawności” jest absurdalna, ponieważ jedyną osobą, która może zweryfikować Twój XML jesteś Ty. O to właśnie chodzi w XML-u - mówisz kilka reguł, które chcesz zachować dla swojego dokumentu XML, kodujesz je w DTD i każesz parserowi XML zająć się zwodniczo trudnym parsowaniem. To jeden z powodów, dla których XML jest nadal ważny - możesz wziąć dowolny model, czy to JSON, tekst, csv, napisać prosty transformator z tego formatu do XML, napisać DTD dla tego XML i bam, pomijasz potrzebę aby napisać własny walidator, XML już to zrobił!
— Dmitry

12

Jeśli przesyłasz formularz za pomocą php, użyj:

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

dla ochrony.


-1

Możesz to zrobić, korzystając z tej samej strony w atrybucie akcji: action='<yourpage>'

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.