Надішліть форму HTML на самостірній сторінці


103

Я хочу, щоб HTML-форма надіслала собі. Як використовувати actionатрибут?

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

Що було кращим?


1
Я сподіваюся , що ви бачили це пост stackoverflow.com/questions/1131781 / ...
Tariqulazam

Що таке <тип> вашого документа ?? Це допоможе вам відповісти.
Мілче Патерн

просто простий не використовувати дію atribute
Milche Patern

Відповіді:


124

У 2013 році, використовуючи всі матеріали HTML5, ви можете просто опустити атрибут 'action', щоб самостійно подати форму

<form>

Насправді підрозділ подання форми для поточної чернетки HTML5 не дозволяє action = "" (порожній атрибут). Це суперечить специфікації.

З цього іншого відповіді на переповнення стека .


1
Я використав <? Php $ _PHP_SELF?> І отримав помилку, що дія не може бути порожньою, я думаю, погано просто залиште її
Древдін

2
Я збентежений. Чи дійсно w3 залишати actionатрибут все разом, але не залишати його порожнім?
містер мартін

Тоді мені потрібно отримати доступ до параметрів за допомогою $ _GET або $ _POST?
Чорний

21

Ви можете залишити атрибут дії порожнім. Форма автоматично подаватиметься на одній сторінці.

<form action="">

Відповідно до специфікації w3c , атрибут дії повинен бути загалом не порожнім дійсним URL-адресом. Існує також пояснення деяких ситуацій, коли атрибут дії може бути порожнім.

Дія елемента - це значення атрибута формації елемента, якщо елемент є кнопкою Submit і має такий атрибут, або значення атрибута дії власника форми, якщо він має такий, або ще порожній рядок.

Тож вони і досі діють та працюють:

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

Якщо ви впевнені, що ваша аудиторія використовує браузери html5, ви можете навіть опустити атрибут дії:

<form>

Чи можете ви підтвердити, що атрибут 'action' може бути порожнім і підтвердженим?
Мілче Патерн

4
Не підтверджує. : Неправильне значення для дії атрибута у формі елемента: Повинно бути порожнім.
Azd325

2
Відповідно до специфікації HTML5 порожній рядок не дозволений як дія: w3c.github.io/html/sec-forms.html#element-attrdef-form-action
Thomas

1
Це єдине, що працює для мене. <br/> Посилання Атрибути вмісту дії та формації, якщо вони вказані, повинні мати значення, яке є дійсною порожньою URL-адресою, потенційно оточеною пробілами ........, якщо вона має одну, або ж порожній рядок.
ДжоелБондурант

поняття "не підтверджує" є абсурдним, оскільки єдиний, хто може підтвердити ваш XML - це ви. У цьому і полягає суть XML - ви говорите купу правил, які ви хочете виконати для своїх XML-документів, кодуєте їх у DTD та маєте набір XML-аналізатора обманливо складного розбору. Це одна з причин, чому XML все ще важливий сьогодні - ви можете взяти будь-яку модель, яку ви хочете, будь то JSON, текст, csv, написати простий трансформатор з цього формату в XML, написати DTD для цього XML і bam, ви пропускаєте необхідність щоб написати власний валідатор, XML це вже зробив!
Дмитро

21

Використання ?:

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

Він поверне користувача на ту саму сторінку.


Це круто!
beppe9000

3
Не так приголомшливо. Це дозволило б видалити всі рядки запитів поточної URL-адреси, якщо вони є.
OMA

1
Я хочу видалити рядки запиту: 3
VoidZA

12

Якщо ви подаєте форму за допомогою php, обов'язково використовуйте:

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

для безпеки.


-1

Ви можете зробити це за допомогою тієї ж сторінки в атрибуті дії: action='<yourpage>'

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.