'how can I validate and process html form (taking in inpute from the ui login interface) using fiber framework golang programming language

please help me to take input with fiber golang framework

<form action="/" method="POST" novalidate>
    <div>
        <p><label>Your email:</label></p>
        <p><input type="email" name="email"></p>
    </div>
    <div>
        <p><label>Your message:</label></p>
        <p><textarea name="content"></textarea></p>
    </div>
    <div>
        <input type="submit" value="Send message">
    </div>
</form> ```


Solution 1:[1]

You can use c.FormValue for simple forms, and keep in mind that the return value is always a string. So if you want to send integers as well you will have to manually convert them to integers in handlers. for more complex forms like sending files you can use c.MultipartForm.

func main() {
    // create new fiber instance  and use across whole app
    app := fiber.New()

    // middleware to allow all clients to communicate using http and allow cors
    app.Use(cors.New())

    // homepage
    app.Get("/", func(c *fiber.Ctx) error {
        // rendering the "index" template with content passing
        return c.Render("index", fiber.Map{})
    })

    // app.Post because method="POST"
    // "/" because action="/"
    app.Post("/", handleFormUpload)

    // start dev server on port 4000
    log.Fatal(app.Listen(":4000"))
}

func handleFormUpload(c *fiber.Ctx) error {
    email := c.FormValue("email")
    content := c.FormValue("content")

    fmt.Println(email, content)
    return c.JSON(fiber.Map{"status": 201, "message": "Created!"})
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Eziz Durdyyev