gpt4 book ai didi

forms - 解析来自 HTML
的输入

转载 作者:IT王子 更新时间:2023-10-29 01:15:43 26 4
gpt4 key购买 nike

我用 Goji framework 运行了一些东西:

package main

import (
"fmt"
"net/http"

"github.com/zenazn/goji"
"github.com/zenazn/goji/web"
)

func hello(c web.C, w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"])
}

func main() {
goji.Get("/hello/:name", hello)
goji.Serve()
}

我希望有人能帮我弄清楚当提交 HTML 表单时如何将该数据发送到 Golang 代码。

因此,如果有一个带有 name 属性的输入字段,其值为 name 并且用户在其中键入一个名称并提交,那么在表单提交页面上,Golang 代码将打印 hello, name。

这是我能想到的:

package main

import(
"fmt"
"net/http"

"github.com/zenazn/goji"
"github.com/zenazn/goji/web"
)

func hello(c web.C, w http.ResponseWriter, r *http.Request){
name := r.PostFormValue("name")
fmt.Fprintf(w, "Hello, %s!", name)
}

func main(){
goji.Handle("/hello/", hello)
goji.Serve()
}

这是我的 hello.html 文件:

在正文中:

<form action="" method="get">
<input type="text" name="name" />
</form>

如何将 hello.html 连接到 hello.go 以便 Golang 代码获取输入中的内容并在表单提交页面中返回 hello, name?

我将不胜感激任何帮助!

最佳答案

为了读取 html 表单值,您必须先调用 r.ParseForm() .您可以获得表单值。

所以这段代码:

func hello(c web.C, w http.ResponseWriter, r *http.Request){
name := r.PostFormValue("name")
fmt.Fprintf(w, "Hello, %s!", name)
}

应该是这样的:

func hello(c web.C, w http.ResponseWriter, r *http.Request){

//Call to ParseForm makes form fields available.
err := r.ParseForm()
if err != nil {
// Handle error here via logging and then return
}

name := r.PostFormValue("name")
fmt.Fprintf(w, "Hello, %s!", name)
}

编辑: 我应该注意到,这是让我在学习 net/http 包时被绊倒的一点

关于forms - 解析来自 HTML <form> 的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23282311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com