Soru Bir html düğmesi bir POST isteğinde bulunabilir mi?


Bir POST isteği göndermek için bir gönderme tipi düğmesi istiyorum.

Böyle bir şey hakkında düşünüyorum:

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

"Upvote" dizesinin POST isteğinde bir ad olarak gönderileceği yer.

Bunun işe yaramadığını biliyorum ve AJAX'ın (javascript) kullanılmasının bir yolu olduğunu biliyorum ama bu alana oldukça yeniyim. Sadece bunun genel olarak mümkün olup olmadığını merak ediyorum.

Güncelleştirme

Birisi bunu kullanmasını önerdi <input> etiketi kullandım. Sorun, POST yerine GET üretmesidir.


37
2018-04-16 11:38


Menşei


Bu inanıyorum sunucuya upvote dize yazıyorum. Şimdi deneyeceğim - dorafmon
jquery $ .post gibi js desteğine ihtiyacınız var - farmer1992
Gönder düğmesini kullanmanız gerekiyor: <button type="submit">Send it</button> kodunuzun geri kalanı iyi görünüyor (boşluklar hariç), eylem alanı daha fazla işlem için verileri alan, istenen sunucu kaynağına url tutar. - Imperative
Kendinizi tanımak için zaman ayırmanız gerekiyor. HTML Formları. - Oded
Tabii ki. Ve seni harika bir öğrenim kaynağına yönlendiriyorum. - Oded


Cevaplar:


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

14
2018-04-16 11:43





Düğmeye bir isim ve bir değer vermelisiniz.

Hiçbir isim isimsiz gönderilemez ve bir düğme öğesinin içeriği değer değil, etikettir.

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

35
2018-04-16 11:56



Bu düğmeyi kullanmadan tamam (çapraz tarayıcılar güvenli) type="submit"? - Mohammed Noureldin
@MohammedNoureldin - Evet, öyle. submit için varsayılan değerdir type bir özellik <button> - Quentin


Yapabilirsin:

  • Ya <input type="submit" ..>, bu düğmenin yerine.
  • veya, Form nesnesini (ad veya kimlik kullanarak) elde etmek için javascript biraz kullanın ve çağırın. submit(..) üstünde. Örneğin: form.submit(). Bu kodu düğme tıklama etkinliğine ekleyin. Bu, form parametrelerini serileştirir ve formun method özniteliğinde belirtildiği gibi bir GET veya POST isteğini yürütür.

2
2018-04-16 11:43



<input> ... kullanıldığında POST yerine bir GET isteği oluşturulur ... Bunu test ediyorum - dorafmon
<form action = "" method "post"> <input type="Submit" name="upvote" value="Upvote"/> </form> Sahip olduğum kod - dorafmon
Aldığım sonuç http://127.0.0.1:8000/debate/00000001?upvote=Upvote - dorafmon
@dorafmon - Form URL’de oluşturulmamışsa http://127.0.0.1:8000/debate/00000001?upvote=Upvote ilk etapta, bu sonucu almamalısınız. - Quentin
Ben başladım debate/00000001 önce, sonra yükselt düğmesine tıklayın ve sonra sonuç url aldım ... - dorafmon