这是我的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" />
Run Code Online (Sandbox Code Playgroud)
如果我检查所有选项并且我r.FormValue("product_image_id")用来获取选中选项的值,我将只获得值0.
我的意思是我只能获得第一个值,虽然已经检查过,但我无法获得其他值.
请帮我.谢谢.
Request.FormValue如果有多个值,则仅返回第一个值.从文档:
FormValue返回查询的命名组件的第一个值.
...
要访问同一个键的多个值,请直接调用
ParseForm然后进行检查Request.Form.
超文本标记语言
<form method="post" name="myform" action="http://localhost:8081/post" >
<input type="checkbox" name="product_image_id" value="Apple" />
<input type="checkbox" name="product_image_id" value="Orange" />
<input type="checkbox" name="product_image_id" value="Grape" />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
去
// ProcessCheckboxes will process checkboxes
func ProcessCheckboxes(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
fmt.Printf("%+v\n", r.Form)
productsSelected := r.Form["product_image_id"]
log.Println(contains(productsSelected, "Grape"))
}
func contains(slice []string, item string) bool {
set := make(map[string]struct{}, len(slice))
for _, s := range slice {
set[s] = struct{}{}
}
_, ok := set[item]
return ok
}
Run Code Online (Sandbox Code Playgroud)
输出
橙色和葡萄复选框已选中并提交
map[product_image_id:[Orange Grape]]
2016/10/27 16:16:06 true
Run Code Online (Sandbox Code Playgroud)
Apple 和 Orange 复选框已选中并提交
map[product_image_id:[Apple Orange]]
2016/10/27 16:17:21 false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4491 次 |
| 最近记录: |