2013-04-16 11 views
26

Desidero un pulsante del tipo di invio per inviare una richiesta POST.Un pulsante html può preformare una richiesta POST?

Sto pensando a qualcosa di simile:

<form action = "" method = "post"> 
    <button>Upvote</button> 
<form> 

dove la stringa "Upvote" sarà inviato come un nome nella richiesta POST.

So che questo non funziona, e so che ci sono modi per utilizzare AJAX (javascript) ma sono abbastanza nuovo in quest'area. Mi chiedo solo se è possibile in generale.

Aggiornamento

Qualcuno suggerisce che l'uso di <input> tag, l'ho usato. Il problema è che genera un GET piuttosto che un POST.

+0

Non invierà la stringa upvote al server in cui credo. Proverò ora – dorafmon

+0

hai bisogno di supporto js come jquery $ .post – farmer1992

+0

puoi usare qualche js per chiamare inviare dal modulo. – LtWorf

risposta

11
<form action = "" method = "post"> 
     <input type="submit" name="upvote" value="Upvote" /> 
    </form> 
2

è possibile:

  • entrambi i casi, utilizzare un <input type="submit" ..>, al posto di quel pulsante.
  • oppure, utilizzare un po 'di javascript, per ottenere una sospensione dell'oggetto modulo (utilizzando il nome o l'id) e chiamare submit(..) su di esso. Ad esempio: form.submit(). Allega questo codice all'evento click del pulsante. Questo serializzerà i parametri del modulo ed eseguirà una richiesta GET o POST come specificato nell'attributo del metodo del modulo.
+0

utilizzando ... genererà una richiesta GET invece di POST ... ho prova che – dorafmon

+0

'' '

\t \t \t
' '' Il codice che ho – dorafmon

+0

Il risultato che ho ottenuto '' 'http: //127.0.0.1: 8000/dibattito/00000001? upvote = Upvote''' – dorafmon

27

È necessario assegnare al pulsante un nome e un valore.

Nessun controllo può essere inviato senza un nome e il contenuto di un elemento del pulsante è l'etichetta, non il valore.

<form action="" method="post"> 
    <button name="foo" value="upvote">Upvote</button> 
</form> 
Problemi correlati