当前位置: 首页 > 面试题库 >

解析来自HTML的输入

长孙阳成
2023-03-14
问题内容

我在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代码将打印问候,名称。

这是我能想到的:

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.htmlhello.go使Golang代码获取的是在表单提交页面输入并返回打招呼,叫什么名字?

我将不胜感激任何帮助!


问题答案:

为了读取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软件包时使我绊倒的一点



 类似资料:
  • 我正在尝试将预订id从HTML传递到模态。在图片中,当我单击屏幕的“Reservation:preview”旁边的“Cancel”时,会出现一个模式,它应该包含Reservation:preview的id号 弹出Modal,但没有保留id号。拜托,怎么了? 我遵循了这个教程:https://www.geeksforgeeks.org/how-to-pass-data-into-a-bootstra

  • HTML5 Boilerplate 默认提供两个 html 页面: index.html 404.html index.html no-js类 no-js 类可以让开发者依据 JavaScript 被启用(.js)或被禁止(.no-js)两种状态,更轻易准确地添加自定义样式。 使用这个技巧也有助于避免浏览器闪烁(FOUC)。 lang 属性 请认真考虑在 <html> 中添加 lang 属性,从而

  • 我正在创建一个游戏,我正在做一个字符选择屏幕,其中有一个JTextField用于输入用户名,屏幕上还有一个JButton“创建字符”,当按下时会解析JTextField,如果有任何问题(名称中的空格,以空格开头等),它会将一些文本放在JTextField旁边的JLabel中。 我将JButton连接到actionPerformed方法,该方法调用解析数据的函数。我的问题是,每次我按下按钮,一个新标

  • 我目前正在使用PHP对S3进行api调用,结果总是以XML形式出现。我的请求将保存到$result: 如何分析仅选择字段? 我试过使用foreach循环,但它似乎不能正常工作。

  • 问题内容: 我正在开发一个从网站上抓取数据的应用程序,我想知道应该如何获取数据。具体来说,我需要包含在使用特定CSS类的许多div标签中的数据-目前(出于测试目的)我只是在检查 在HTML的每一行中-都可以,但是我不禁感到有更好的解决方案。 有什么好方法可以给类添加一行HTML并提供一些好方法,例如: 问题答案: “ JTidy是HTML Tidy的Java端口,HTML Tidy是HTML语法检

  • 我有一个嵌套的JSON语句,我需要将其转换为触发数据框。这个JSON语句存在于数据框列中。我一直在尝试使用“from_json”和“get_json_object”解析数据框列中的语句,但无法读取数据。这是我一直试图阅读的源数据的最小片段: 我需要提取嵌套的cript值。我使用下面的代码来清理数据并将其读入数据框 每次运行上述代码时,我都会得到一个空数据框。请帮忙。 尝试了以下内容,但没有成功:P