Oi pessoal!
Eu sou muito novo em Golang, então talvez esta seja uma pergunta de novato.
O que estou tentando fazer - adicionar campo de tags, e é uma caixa de seleção select2 com várias escolhas. Então, basicamente, é o seguinte 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>
Mas se eu ler c.PostForm("tags")
, ele me mostra apenas o primeiro valor.
Não encontrei a resposta, mas descobri que posso fazer o seguinte:
c.Request.ParseMultipartForm(5 * 1024 * 1024)
tags := c.Request.Form["tags"]
fmt.Println(tags)
Funciona, mas me pergunto se é uma abordagem correta ou não.
Obrigada!
Oi Bloomca,
Em primeiro lugar, você deve modificar seu select <select name="tags" multiple="multiple">
para <select name="tags[]" multiple="multiple">
porque queremos obter os valores selecionados em um array.
Em seguida, declare uma estrutura para seu formulário.
type Myform struct {
Tags []string `form:"tags[]"`
}
Witch é mais simples para obter entradas selecionadas.
var myform Myform
c.Bind(&myform)
fmt.Println(myform.Tags)
@Bloomca O comentário @EtienneR resolve seu problema?
@appleboy sim, muito obrigado! Desculpe por não fechá-lo imediatamente.
Comentários muito úteis
Oi Bloomca,
Em primeiro lugar, você deve modificar seu select
<select name="tags" multiple="multiple">
para<select name="tags[]" multiple="multiple">
porque queremos obter os valores selecionados em um array.Em seguida, declare uma estrutura para seu formulário.
Witch é mais simples para obter entradas selecionadas.