Go / Gin Gonic を使用して、HTML フォームから Post 値の配列を取得しようとしています。PHP では、次のようなものを使用します。
<form method="POST" enctype="multipart/form-data" action="mygo">
<input type=hidden name="emails[]" value="email1@email.com">
<input type=hidden name="emails[]" value="email2@email.com">
<input type=hidden name="emails[]" value="email3@email.com">
</form>
ただし、これは Gin Gonic (または Go) では機能しないようです。
私も試しました:
<form method="POST" enctype="multipart/form-data" action="mygo">
<input type=hidden name="emails" value="email1@email.com">
<input type=hidden name="emails" value="email2@email.com">
<input type=hidden name="emails" value="email3@email.com">
</form>
c.PostForm("emails")
他の場所と同様に、これを行うとスライスが返されることが示唆されています。ただし、実際には、これは代わりに最後の値を文字列として返すようです:(
興味深いことに、が最初に呼び出されたc.Request.PostForm
場合でも、空のマップを返します。c.Request.ParseForm()
私は何を間違っていますか?
フォームに移動:
func main() {
// ...
router.POST("mygo",parseFunc)
}
func mygo(c *gin.Context) {
c.Request.ParseForm()
log.Printf("%v",c.Request.PostForm["emails"]) // ""
log.Printf("%v",c.PostForm("emails") // "email3@email.com"
}