Poldi
Poldi

Reputation: 13

Goji - How to get a HTML GET form request to GoLang in a variable?

Please take a look at my two files main.go and index.html. I am starting with the Goji web microframework. Find Snippets at the Goji web framework.

In my example I can see the HTML form webpage index.html at @Localhost8000 and I can type in the input field for example "test" and press the submit button. In the terminal output I can see that it was send: "Started GET "/?name=test" from 127.0.0.1:51580"

How can I get a HTML GET form request to golang in a variable? I think it will be going with goji.Get. I tried several ways but I get it not to run. I am happy if somebody can give me a hint or a snippet. I still learning golang.

File main.go:

package main

import (
     "net/http"
     "github.com/zenazn/goji"
 )


 func main() {
     staticFilesLocation := "public"
     goji.Handle("/", http.FileServer(http.Dir(staticFilesLocation)))
     goji.Serve()
 }

File index.html:

<html>
<head>
</head>
<body>
<!-- Simple form which will send a GET request -->
<form action="">
  <label for="GET-name">Name:</label>
  <input id="GET-name" type="text" name="name">
  <input type="submit" value="sendGET">
</form>
</body>
</html>

File loacations:

src/formgoji/main.go
src/formgoji/public/index.html

Output - start in terminal window:

$ go run main.go
2014/12/22 14:38:40.984448 Starting Goji on [::]:8000
2014/12/22 14:38:48.789214 [xxxx/yyyy-000001] Started GET "/" from 127.0.0.1:51580
2014/12/22 14:38:48.789332 [xxxx/yyyy-000001] Returning 304 in 74.8µs
2014/12/22 14:39:11.239039 [xxxx/yyyy-000002] Started GET "/?name=test" from   127.0.0.1:51580
2014/12/22 14:39:11.239149 [xxxx/yyyy-000002] Returning 304 in 66.489µs

A similiar question was here at stackoverflow: parse-input-from-html-form-in-golang This example I couldn't run.I think this has to do where your files are located and how is your @localhost defined. This is in this example missing.

Upvotes: 1

Views: 1298

Answers (1)

TK-421
TK-421

Reputation: 10763

Goji's advertised as a minimalistic framework and doesn't seem to be helping you much in terms of form submissions, so I think you'll need to look to standard Go.

For an example you might check out how the body attribute is managed in the following examples, taken from Go's documentation:

Editing Pages (represented as a textarea)

Saving Pages (retrieved from Request using FormValue())

Upvotes: 1

Related Questions