11
Próbuję przetworzyć prosty formularz HTML w wersji go. Nie mogę jednak uzyskać żadnych danych dotyczących postów po ich przesłaniu. Mapa r.Form jest zawsze []. Nie wiem, gdzie idę źle.request.Post array pusty po przesłaniu formularza
Z góry dziękuję.
Oto kod http://play.golang.org/p/aZxPCcRAVV
package main
import (
"html/template"
"log"
"net/http"
)
func rootHandler(w http.ResponseWriter, r *http.Request) {
t, _ := template.New("form.html").Parse(form)
t.Execute(w, "")
}
func formHandler(w http.ResponseWriter, r *http.Request) {
log.Println(r.Form)
rootHandler(w, r)
}
func main() {
http.HandleFunc("/", rootHandler)
http.HandleFunc("/login", formHandler)
http.ListenAndServe("127.0.0.1:9999", nil)
}
var form = `
<h1>Login</h1>
<form action="/login" method="POST">
<div><input name="username" type="text"></div>
<div><input type="submit" value="Save"></div>
</form>
`
Dzięki! Śledziłem pisanie artykułów o aplikacjach internetowych [http://golang.org/doc/articles/wiki/#tmp_8](http://golang.org/doc/articles/wiki/#tmp_8). Prawdopodobnie jest nieco przestarzały i nie wspomina o ParseForm(). – rputikar
W tym przykładzie użyto metody FormValue, która wywoła funkcję ParseForm, jeśli zajdzie taka potrzeba. Uzyskujesz bezpośredni dostęp do zmiennej Form, więc musisz bezpośrednio wywołać ParseForm. – masebase