Golang解析形式

前端之家收集整理的这篇文章主要介绍了Golang解析形式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有以下表单设置:
{{ range $key,$value := .scores }}
    <input id="{{$value.Id}}_rating__1" type="radio" name="rating[{{$value.Id}}]" value="-1">
    <input id="{{$value.Id}}_rating__0" type="radio" name="rating[{{$value.Id}}]" value="0">
    <input id="{{$value.Id}}_rating__2" type="radio" name="rating[{{$value.Id}}]" value="+1">
{{ end }}

那我怎样才能正确提取数据呢?知道那里.scores可以包含多个结构

func categoryViewSubmit(w http.ResponseWriter,r *http.Request) {
    err := r.ParseForm()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("POST")

    fmt.Printf("%+v\n",r.Form()) // annot call non-function r.Form (type url.Values)
    fmt.Printf("%+v\n",r.FormValue("rating")) // Returns nothing
}
表单键看起来像rating [id],其中id是值标识符.要获取其中一个值,请在将id替换为实际id值后调用r.FormValue(“rating [id]”).

我建议打印表单以查看发生了什么:

fmt.Printf("%+v\n",r.Form)  // No () following Form,Form is not a function

formurl.Values. url.Values是map [string] []字符串.您可以按如下方式遍历表单:

for key,values := range r.Form {   // range over map
  for _,value := range values {    // range over []string
     fmt.Println(key,value)
  }
}

猜你在找的Go相关文章