You can’t/shouldn’t use the Request.FormValue() function because that only returns 1 value. Use Request.Form["new_data"] which is a slice of strings containing all the values.
But note that if you don’t call r.FormValue(), you have to trigger parsing the form (and populating the Request.Form map) by calling Request.ParseForm() explicitly.

You also have an HTML syntax error: the value of the name attribute is not closed, change it to:

<select id="new_data" name="new_data" class="tag-select chzn-done"
    multiple="" style="display: none;">

Here is a complete app to test that it works (error checks ommited!):

package main

import (
    "fmt"
    "net/http"
)

func myHandler(w http.ResponseWriter, r *http.Request) {
    if r.Method == "POST" {
        // Form submitted
        r.ParseForm() // Required if you don't call r.FormValue()
        fmt.Println(r.Form["new_data"])
    }
    w.Write([]byte(html))
}

func main() {
    http.HandleFunc("/", myHandler)
    http.ListenAndServe(":9090", nil)
}

const html = `
<html><body>
<form action="process" method="post">
    <select id="new_data" name="new_data" class="tag-select chzn-done" multiple="" >
        <option value="1">111mm1</option>
        <option value="2">222mm2</option>
        <option value="3">012nx1</option>
    </select>
    <input type="Submit" value="Send" />
</form>
</body></html>
`

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть