2013-04-16 39 views
26

Tôi muốn có nút gửi loại để gửi yêu cầu POST.Nút html có thể tạo trước yêu cầu POST không?

Tôi đang nghĩ về một cái gì đó như thế này:

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

nơi chuỗi "Upvote" sẽ được gửi đi như một tên trong yêu cầu POST.

Tôi biết điều này không hoạt động, và tôi biết có nhiều cách sử dụng AJAX (javascript) nhưng tôi khá mới trong lĩnh vực này. Tôi chỉ tự hỏi nếu điều này là có thể nói chung.

Cập nhật

Có người gợi ý rằng việc sử dụng thẻ <input>, tôi sử dụng nó. Vấn đề là nó tạo ra một GET chứ không phải là một POST.

+0

Nó sẽ không đăng chuỗi upvote lên máy chủ mà tôi tin. Tôi sẽ thử ngay bây giờ – dorafmon

+0

bạn cần hỗ trợ js như jquery $ .post – farmer1992

+0

bạn có thể sử dụng một số js để gọi gửi từ biểu mẫu. – LtWorf

Trả lời

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

Bạn có thể:

  • Hoặc, sử dụng một <input type="submit" ..>, thay vì nút đó.
  • hoặc, Sử dụng một chút javascript, để giữ một đối tượng biểu mẫu (sử dụng tên hoặc id) và gọi submit(..) trên đó. Ví dụ: form.submit(). Đính kèm mã này vào sự kiện nhấp nút. Điều này sẽ nối tiếp các tham số biểu mẫu và thực hiện một yêu cầu GET hoặc POST như được chỉ định trong thuộc tính method của biểu mẫu.
+0

sử dụng ... sẽ tạo yêu cầu GET thay vì POST ... Tôi đã kiểm tra nó – dorafmon

+0

'' '

\t \t \t
' '' Mã tôi có – dorafmon

+0

Kết quả tôi nhận được '' 'http: //127.0.0.1: 8000/debate/00000001? upvote = Upvote''' – dorafmon

27

Bạn cần đặt tên cho nút và giá trị.

Không thể kiểm soát mà không có tên và nội dung của phần tử nút là nhãn chứ không phải giá trị.

<form action="" method="post"> 
    <button name="foo" value="upvote">Upvote</button> 
</form> 
Các vấn đề liên quan