Kirimkan formulir HTML di halaman mandiri

103

Saya ingin formulir HTML dikirim ke dirinya sendiri. Bagaimana cara menggunakan actionatribut ini?

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

Mana yang lebih disukai?

Oto Shavadze
sumber
1
Saya harap Anda telah melihat posting ini stackoverflow.com/questions/1131781/…
Tariqulazam
Apa <doctype> dari dokumen Anda ?? Ini akan membantu menjawab Anda.
Milche Patern
hanya sederhana tidak menggunakan atribut tindakan
Milche Patern

Jawaban:

124

Pada tahun 2013, dengan semua barang HTML5, Anda cukup menghilangkan atribut 'action' untuk mengirimkan sendiri formulir

<form>

Sebenarnya, Subbagian Pengiriman Formulir dari draf HTML5 saat ini tidak mengizinkan tindakan = "" (atribut kosong). Ini bertentangan dengan spesifikasi.

Dari jawaban Stack Overflow lainnya ini .

Milche Patern
sumber
1
Saya menggunakan <? Php $ _PHP_SELF?> Dan mendapat kesalahan bahwa tindakan tidak boleh kosong, saya rasa sakit biarkan saja
Drewdin
2
Saya bingung. Apakah w3 valid untuk meninggalkan actionatribut secara keseluruhan, tetapi tidak membiarkannya kosong?
mister martin
Lalu, apakah saya perlu mengakses parameter dengan $ _GET atau $ _POST?
Hitam
21

Anda dapat mengosongkan atribut tindakan. Formulir akan secara otomatis mengirimkan dirinya di halaman yang sama.

<form action="">

Menurut spesifikasi w3c , atribut tindakan harus berupa url valid yang tidak kosong secara umum. Ada juga penjelasan untuk beberapa situasi di mana atribut tindakan mungkin dibiarkan kosong.

Tindakan sebuah elemen adalah nilai dari atribut formaction elemen, jika elemen tersebut adalah Submit Button dan memiliki atribut seperti itu, atau nilai atribut action dari pemilik formulirnya, jika memiliki satu, atau string kosong.

Jadi keduanya masih valid dan berfungsi:

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

Jika Anda yakin audiens Anda menggunakan browser html5, Anda bahkan dapat menghilangkan atribut action:

<form>
muratgozel
sumber
Dapatkah Anda mengonfirmasi bahwa atribut 'action' dapat dikosongkan dan divalidasi?
Milche Patern
4
Tidak memvalidasi. : Nilai buruk untuk tindakan atribut pada bentuk elemen: Tidak boleh kosong.
Azd325
2
Menurut spesifikasi HTML5, string kosong tidak diperbolehkan sebagai tindakan: w3c.github.io/html/sec-forms.html#element-attrdef-form-action
Thomas
1
Ini adalah satu-satunya hal yang berhasil untuk saya. <br/> link Atribut konten tindakan dan formaksi, jika ditentukan, harus memiliki nilai berupa URL tidak kosong yang valid yang berpotensi diapit oleh spasi ........ jika ada, atau string kosong.
JoelBondurant
konsep "tidak memvalidasi" tidak masuk akal karena satu-satunya orang yang dapat memvalidasi XML Anda adalah Anda. Itulah inti dari XML - Anda mengatakan sekumpulan aturan yang ingin Anda pegang benar untuk dokumen XML Anda, mengenkodekannya dalam DTD dan meminta pengurai XML mengambil penguraian yang tampak sulit. Inilah salah satu alasan mengapa XML masih penting saat ini - Anda dapat mengambil model apa pun yang Anda inginkan, baik itu JSON, teks, csv, menulis transformator sederhana dari format itu ke XML, menulis DTD untuk XML itu, dan bam, Anda tidak perlu lagi untuk menulis validator Anda sendiri, XML sudah melakukannya!
Dmitry
21

Penggunaan ?:

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

Ini akan mengirim pengguna kembali ke halaman yang sama.

Le Codeur
sumber
Ini luar biasa!
beppe9000
3
Tidak terlalu mengagumkan. Ini akan menghapus semua string kueri dari URL saat ini jika ada.
OMA
1
Saya ingin menghapus string kueri: 3
VoidZA
12

Jika Anda mengirimkan formulir menggunakan php pastikan untuk menggunakan:

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

untuk keamanan.

Tapi s
sumber
-1

Anda dapat melakukannya dengan menggunakan halaman yang sama pada atribut tindakan: action='<yourpage>'

DarkAjax
sumber