2013-04-16 18 views
26

Chcę przycisk typu przesyłania, aby wysłać żądanie POST.Czy przycisk html może wywołać żądanie POST?

myślę o czymś tak:

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

gdzie ciąg „upvote” zostanie wysłany jako imię w żądaniu POST.

Wiem, że to nie działa i wiem, że są sposoby korzystania z AJAX (javascript), ale jestem całkiem nowy w tym obszarze. Zastanawiam się tylko, czy to w ogóle możliwe.

Aktualizacja

Ktoś sugeruje, że za pomocą <input> tag, użyłem go. Problem polega na tym, że generuje GET zamiast POST.

+0

Nie chcę opublikować łańcucha upvote na serwerze, który wierzę. Spróbuję teraz – dorafmon

+0

potrzebujesz wsparcia js, takiego jak jquery $ .post – farmer1992

+0

możesz użyć js, aby połączyć zgłoszenie z formularza. – LtWorf

Odpowiedz

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

Można:

  • Albo, użyć <input type="submit" ..>, zamiast tego przycisku.
  • lub Użyj trochę javascript, aby uzyskać obiekt formularza (używając nazwy lub identyfikatora) i zadzwoń pod numer submit(..). Np .: form.submit(). Dołącz ten kod do zdarzenia kliknięcia przycisku. Spowoduje to serializację parametrów formularza i wykonanie żądania GET lub POST zgodnie z atrybutem metody formularza.
+0

użyciu ... wygeneruje żądanie GET zamiast POST ... mam go przetestować – dorafmon

+0

'' '

\t \t \t
' '' Kod mam – dorafmon

+0

Wynik otrzymałem '' 'http: //127.0.0.1: 8000/debata/00000001? upvote = Upvote''' – dorafmon

27

Musisz nadać przyciskowi nazwę i wartość.

Nie można przesłać kontroli bez nazwy, a treść elementu przycisku to etykieta, a nie wartość.

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