猿问

Golang - 如何获取复选框的所有值?r.FormValue 不起作用?

这是我的 HTML:


<input type="checkbox" name="product_image_id" value="0" />

<input type="checkbox" name="product_image_id" value="1" />

<input type="checkbox" name="product_image_id" value="2" />

如果我检查所有选项并使用r.FormValue("product_image_id")来获取选中选项的值,我将只获取 value 0。


我的意思是我只能得到第一个值,虽然它被检查了,但我不能得到其他值。


请帮我。谢谢。


四季花海
浏览 191回答 3
3回答

海绵宝宝撒

Request.FormValue如果有多个,则仅返回第一个值。从文档:FormValue 返回查询的命名组件的第一个值。...要访问同一键的多个值,请直接调用ParseForm然后检查Request.Form。

隔江千里

r.FormValue返回选项列表中的第一个值而不是 use&nbsp;r.Form,这将返回一个列表。您可以通过以下方式访问您的值&nbsp;r.Form["product_image_id"]

杨__羊羊

HTML&nbsp; &nbsp; <form method="post" name="myform" action="http://localhost:8081/post" >&nbsp; &nbsp; &nbsp;<input type="checkbox" name="product_image_id" value="Apple" />&nbsp; &nbsp; &nbsp;<input type="checkbox" name="product_image_id" value="Orange" />&nbsp; &nbsp; &nbsp;<input type="checkbox" name="product_image_id" value="Grape" />&nbsp; &nbsp; &nbsp;<input type="submit">&nbsp; &nbsp; </form>走// ProcessCheckboxes will process checkboxesfunc ProcessCheckboxes(w http.ResponseWriter, r *http.Request) {&nbsp; &nbsp; r.ParseForm()&nbsp; &nbsp; fmt.Printf("%+v\n", r.Form)&nbsp; &nbsp; productsSelected := r.Form["product_image_id"]&nbsp; &nbsp; log.Println(contains(productsSelected, "Grape"))}func contains(slice []string, item string) bool {&nbsp; &nbsp; set := make(map[string]struct{}, len(slice))&nbsp; &nbsp; for _, s := range slice {&nbsp; &nbsp; &nbsp; &nbsp; set[s] = struct{}{}&nbsp; &nbsp; }&nbsp; &nbsp; _, ok := set[item]&nbsp; &nbsp; return ok}输出橙色和葡萄复选框被选中并提交map[product_image_id:[Orange Grape]]2016/10/27 16:16:06 true选中并提交 Apple 和 Orange 复选框map[product_image_id:[Apple Orange]]2016/10/27 16:17:21 false
随时随地看视频慕课网APP

相关分类

Go
我要回答