从唯一模板处理多个表单

时间:2014-11-08 15:10:03

标签: forms go

我在模板中有两个表单,如何按顺序识别每个html表单 将它处理成我的处理程序?
可以在后处理程序代码中获取表单名称吗?

我正在使用nosurf,因此我必须生成并检查 同一个请求中的令牌,也许我做错了..

    <form action="/form" method="post" name="form1">
         <label class="control-label">Set A</label>
            <div class="controls">
                <input type="text" id="my" name="my">
            </div>
      <div style="display:none;">
      <input name="_formkey" type="hidden" value="{{.token}}">
      </div>            
    </form>

    <form action="/form" method="post" name="form2">
         <label class="control-label">Set thing</label>
            <div class="controls">
                <input type="text" id="thing" name="thing">
            </div>
      <div style="display:none;">
      <input name="_formkey" type="hidden" value="{{.token}}">
      </div>            
    </form>

我的处理程序

func myHandler(w http.ResponseWriter, r *http.Request) {
    switch r.Method{
    case "GET":
        data:=map[string]interface{}{
            "key":nosurf.Token(req),
        }
        if err := renderTemplate(w, "base", data); err != nil {
            log.Error(err)
        }

    case "POST":
        // how?
        if r.FormValue("my"){}
        ...
        if r.FormValue("thing"){}
        ...

    }

}

由于

1 个答案:

答案 0 :(得分:1)

  

是否可以在帖子处理程序代码中获取表单名称?

我认为不可能,但您可以在另一个隐藏的输入字段中发送表单名称。