diff --git a/_examples/README.md b/_examples/README.md index 7bb18b94..44d24cac 100644 --- a/_examples/README.md +++ b/_examples/README.md @@ -137,6 +137,7 @@ * [Bind MsgPack](request-body/read-msgpack/main.go) * [Bind YAML](request-body/read-yaml/main.go) * [Bind Form](request-body/read-form/main.go) + * [Checkboxes](request-body/read-form/checkboxes/main.go) * [Bind Query](request-body/read-query/main.go) * [Bind Headers](request-body/read-headers/main.go) * [Bind Params](request-body/read-params/main.go) diff --git a/_examples/request-body/read-form/checkboxes/main.go b/_examples/request-body/read-form/checkboxes/main.go new file mode 100644 index 00000000..bd9994dc --- /dev/null +++ b/_examples/request-body/read-form/checkboxes/main.go @@ -0,0 +1,32 @@ +package main + +import "github.com/kataras/iris/v12" + +func main() { + app := iris.New() + app.RegisterView(iris.HTML("./templates", ".html")) + + app.Get("/", showForm) + app.Post("/", handleForm) + + app.Listen(":8080") +} + +func showForm(ctx iris.Context) { + ctx.View("form.html") +} + +type formExample struct { + Colors []string `form:"colors[]"` // or just colors, it'll work as expected. +} + +func handleForm(ctx iris.Context) { + var form formExample + err := ctx.ReadForm(&form) + if err != nil { + ctx.StopWithError(iris.StatusBadRequest, err) + return + } + + ctx.JSON(iris.Map{"Colors": form.Colors}) +} diff --git a/_examples/request-body/read-form/checkboxes/templates/form.html b/_examples/request-body/read-form/checkboxes/templates/form.html new file mode 100644 index 00000000..aaaf6821 --- /dev/null +++ b/_examples/request-body/read-form/checkboxes/templates/form.html @@ -0,0 +1,22 @@ + + +
+ + +