Invia il modulo HTML sulla pagina personale


103

Voglio un modulo HTML da sottoporre a se stesso. Come si usa l' actionattributo?

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

Quale era preferibile?


1
Spero che abbiate visto questo post stackoverflow.com/questions/1131781/...
Tariqulazam

Qual è il <doctype> del tuo documento ?? Ti aiuterà a risponderti.
Milche Patern

semplicemente semplice non utilizzare
attributo

Risposte:


124

Nel 2013, con tutto il materiale HTML5, puoi semplicemente omettere l'attributo "action" per inviare automaticamente un modulo

<form>

In realtà, la sottosezione Invio modulo dell'attuale bozza HTML5 non consente action = "" (attributo vuoto). È contro le specifiche.

Da questa altra risposta di Stack Overflow .


1
Ho usato <? Php $ _PHP_SELF?> E ho ricevuto l'errore che l'azione non può essere vuota, immagino di lasciarla fuori
Drewdin

2
Non ho capito bene. È valido w3 lasciare l' actionattributo all-together, ma non lasciarlo vuoto?
mister martin

Allora devo accedere ai parametri con $ _GET o $ _POST?
Black

21

Puoi lasciare vuoto l'attributo dell'azione. Il modulo si presenterà automaticamente nella stessa pagina.

<form action="">

Secondo la specifica w3c , l'attributo di azione deve essere un URL valido non vuoto in generale. C'è anche una spiegazione per alcune situazioni in cui l'attributo action può essere lasciato vuoto.

L'azione di un elemento è il valore dell'attributo formaction dell'elemento, se l'elemento è un pulsante di invio e ha tale attributo, o il valore dell'attributo action del proprietario del modulo, se ne ha uno, oppure la stringa vuota.

Quindi entrambi sono ancora validi e funzionano:

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

Se sei sicuro che il tuo pubblico stia utilizzando browser html5, puoi persino omettere l'attributo action:

<form>

Puoi confermare che l'attributo "azione" può essere lasciato vuoto e convalidare?
Milche Patern

4
Non convalida. : Valore errato per l'azione dell'attributo nel modulo dell'elemento: non deve essere vuoto.
Azd325

2
Secondo le specifiche HTML5 una stringa vuota non è consentita come azione: w3c.github.io/html/sec-forms.html#element-attrdef-form-action
Thomas

1
Questa è l'unica cosa che funziona per me. <br/> link Gli attributi action e formaction content, se specificati, devono avere un valore che è un URL valido non vuoto potenzialmente circondato da spazi ........ se ne ha uno, oppure la stringa vuota.
JoelBondurant

il concetto di "non convalida" è assurdo perché l'unica persona che può convalidare il tuo XML sei tu. Questo è il punto di XML: dici un mucchio di regole che vuoi mantenere vere per il tuo documento XML, codificale in DTD e fai in modo che il parser XML prenda un'analisi ingannevolmente difficile. Questo è uno dei motivi per cui XML è ancora importante oggi: puoi prendere qualsiasi modello tu voglia, sia esso JSON, testo, csv, scrivere un semplice trasformatore da quel formato a XML, scrivere un DTD per quell'XML e bam, salti la necessità per scrivere il tuo validatore, XML lo ha già fatto!
Dmitry

21

Usa ?:

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

Rimanderà l'utente alla stessa pagina.


Questo e spettacolare!
beppe9000

3
Non così eccezionale. Ciò rimuoverebbe tutte le stringhe di query dell'URL corrente se le dispone.
OMA

1
Voglio rimuovere le stringhe di query: 3
VoidZA

12

Se stai inviando un modulo usando php assicurati di usare:

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

per sicurezza.


-1

Puoi farlo utilizzando la stessa pagina sull'attributo action: action='<yourpage>'

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.