2011-12-06 21 views
49

Sto leggendo un libro sullo sviluppo html (che sono abbastanza nuovo) e nonostante il fatto che il libro ha appena avuto la sua prima pubblicazione un mese fa (novembre 2011), l'autore è un programmatore esperto e forse usando # per l'azione in una forma è vecchia scuola?cosa sono <form action = "#"> e <form method = "post" action = "#> do?

Perché sto cercando di ottenere l'essenza del codice di esempio e non riesco a trovare una spiegazione del form action="#" nonostante la ricerca di

<form action="#"> 

su google, su SO, e in www.w3schools.com.

Qualcuno sa cosa significa l'azione # per i moduli?

+4

http://w3fools.com/ – Jakub

+1

azione specifica dove verranno inviate le informazioni. nell'esempio hai scoperto che probabilmente il modulo è stato inviato con javascript –

+0

Sembra un codice di esempio errato, non avresti quasi mai bisogno di farlo. Anche se stai usando javascript per inviare il modulo, non è necessario eseguire l'hardcoding di un 'azione' fasulla. –

risposta

50

azione normalmente specifica il file/pagina che il modulo viene inviato a (utilizzando il metodo descritto nel metodo paramater (posta, ottenere ecc))

Un'azione di # indica che il modulo rimane lo stesso pagina, semplicemente suffisso l'url con un #. Un simile uso si verifica nelle ancore. Ad esempio, <a href=#">Link</a> rimarrà sulla stessa pagina.

Così, il modulo viene inviato alla stessa pagina, che poi elabora i dati ecc

+0

Perché dovresti farlo per un'azione modulo? Un'ancora capisco, ma non una forma. – Nik

+3

@Nik perché alcune volte le azioni del server sono abbastanza semplici da operare su una sola pagina. Lo uso spesso quando costruisco una semplice pagina di ricerca del database in PHP. È più semplice che avere due pagine per le tue semplici azioni. –

+1

La pagina si limita a tornare a se stessa quindi? – Nik

20

action="" risolverà l'indirizzo della pagina. action="#" si risolverà all'indirizzo della pagina + #, che significherà un identificatore di frammento vuoto.

Fare ciò potrebbe impedire una navigazione (nuovo caricamento) sulla stessa pagina e provare invece a passare all'elemento con l'id nell'identificatore di frammento. Ma dato che è vuoto, non salterà da nessuna parte.

Di solito, gli autori inseriscono semplicemente # in attributi href quando non utilizzano l'attributo in cui stanno utilizzando gli script. In questi casi, potrebbero semplicemente usare action="" (o ometterlo se la convalida lo consente).

3

Il tag # consente di inviare i dati allo stesso file. Lo vedo come un processo in tre fasi:

  1. Query un DB popolare un da
  2. permettono all'utente di modificare i dati in forma
  3. Inviare di nuovo i dati al DB tramite lo script php

Con il metodo = '#' puoi fare tutto questo nello stesso file.

Dopo l'esecuzione della query di invio, la pagina verrà ricaricata con i dati aggiornati dal DB.

Problemi correlati