Gin: Как получить несколько значений из select

Созданный на 29 окт. 2016  ·  3Комментарии  ·  Источник: gin-gonic/gin

Привет всем!

Я новичок в Голанге, так что, возможно, это вопрос для новичков.
То, что я пытаюсь сделать, - добавить поле тегов, и это поле выбора select2 с несколькими вариантами. Итак, по сути, это следующий HTML:

<select name="tags" multiple="multiple">
   <option value="id_1">Prague</option>
   <option value="id_2">Novi Sad</option>
   <option value="id_3">Vienna</option>
</select>

Но если я прочитаю его через c.PostForm("tags") , он покажет мне только первое значение.

Я не нашел ответа, но обнаружил, что могу сделать следующее:

c.Request.ParseMultipartForm(5 * 1024 * 1024)
tags := c.Request.Form["tags"]
fmt.Println(tags)

Это работает, но мне интересно, правильный это подход или нет.

Спасибо!

question

Самый полезный комментарий

Привет, Блумка,

Сначала вы должны изменить свой выбор <select name="tags" multiple="multiple"> на <select name="tags[]" multiple="multiple"> потому что мы хотим получить значения, выбранные в массиве.

Затем объявите структуру для вашей формы.

type Myform struct {
    Tags []string `form:"tags[]"`
}

Ведьма проще получить выбранные входы.

var myform Myform
c.Bind(&myform)

fmt.Println(myform.Tags)

Все 3 Комментарий

Привет, Блумка,

Сначала вы должны изменить свой выбор <select name="tags" multiple="multiple"> на <select name="tags[]" multiple="multiple"> потому что мы хотим получить значения, выбранные в массиве.

Затем объявите структуру для вашей формы.

type Myform struct {
    Tags []string `form:"tags[]"`
}

Ведьма проще получить выбранные входы.

var myform Myform
c.Bind(&myform)

fmt.Println(myform.Tags)

@Bloomca Комментарий решает вашу проблему?

@appleboy да, большое спасибо! Извините, что не закрыл его сразу.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги