I'm trying to capture an array of Post values from HTML form using Go / Gin Gonic -- in PHP I would use something like:
<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>
However this doesn't seem to work with Gin Gonic (or Go for that matter).
I've also tried:
<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>
As elsewhere it is suggested that doing this would cause c.PostForm("emails")
to return a slice. However in practice it seems that this instead returns the last value as a string instead :(
Interestingly, c.Request.PostForm
returns an empty map, even if c.Request.ParseForm()
is called first. What am I doing wrong?
Go Form:
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"
}