登录
首页 >  Golang >  Go问答

解析来自 HTML 的输入

来源:Golang技术栈

时间:2023-04-12 21:23:34 251浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《解析来自 HTML 的输入》,就带大家讲解一下golang知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我用Goji 框架运行了一些东西:

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 文件:

在身体里:

如何连接hello.htmlhello.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包时让我绊倒的一点

好了,本文到此结束,带大家了解了《解析来自 HTML 的输入》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>