html - golang Beego中如何解析表单数组

标签 html forms go

如何用Beego解析html表单数组

<input name="names[]" type="text" /> <input name="names[]" type="text" /> <input name="names[]" type="text" />

去Beego

type Rsvp struct {
    Id    int      `form:"-"`
    Names []string `form:"names[]"`
}

rsvp := Rsvp{}
if err := this.ParseForm(&rsvp); err != nil {
    //handle error
}

input := this.Input()
fmt.Printf("%+v\n", input) // map[names[]:[name1 name2 name3]]
fmt.Printf("%+v\n", rsvp) // {Names:[]}

为什么 Beego ParseForm 方法返回一个空名称?

如何将值放入 rsvp.Names?

最佳答案

感谢@ysqi 给我的提示。我正在添加一个详细的示例来解析关联数组,例如 beego 中的表单数据

这是我的表单结构:

<input name="contacts[0][email]" type="text" value="a1@gmail.com"/>
<input name="contacts[0][first_name]" type="text" value="f1"/>
<input name="contacts[0][last_name]" type="text" value="l1"/>
<input name="contacts[1][email]" type="text" value="a2@gmail.com"/>
<input name="contacts[1][first_name]" type="text" value="f2"/>
<input name="contacts[1][last_name]" type="text" value="l2"/>

golang(beego) 代码:

contacts := make([]map[string]string, 0, 3)

this.Ctx.Input.Bind(&contacts, "contacts")

联系人变量:

[
  {
    "email": "user2@gmail.com",
    "first_name": "Sam",
    "last_name": "Gamge"
  },
  {
    "email": "user3@gmail.com",
    "first_name": "john",
    "last_name": "doe"
  }
]

现在你可以像这样使用它:

for _, contact := range contacts {
    contact["email"]
    contact["first_name"]
    contact["last_name"]
}

关于html - golang Beego中如何解析表单数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713817/

相关文章:

mysql - 如何避免 "too many connections"

javascript - 如何在 Canvas 中旋转一个圆扇形穿过其枢轴(作为圆心)?

PHP Post 调用不返回变量

jquery 更改文本并将其替换为链接

javascript - rails 4 : display spinner with javascript on form submit

javascript - 为什么 Internet Explorer 不能一致地触发提交事件?

go - 我可以依赖基于发送顺序的选择唤醒顺序吗?

自动将结构转到 OpenAPI 到 JSONSchema 生成

python - 如何使用 python 从网页中提取 ID 和类?

jQuery - 触发器 ('click' ) 在 IE 中不工作 - 对象不支持此属性或方法