Need some help with basic form submissions

GET /users/new HelloWeb.UserController :new
…
POST /users HelloWeb.UserController :create
…
source: Routing — Phoenix v1.8.8

The :new route is to get the blank form, hence the GET HTTP request. While the :create route is to submit/post the completed form, hence the POST HTTP request.

If you’re on a relatively new version of Phoenix and ran mix phx.gen.html ..., you’d see a form component with an action that points to a :create route.

<.form :let={f} for={@changeset} action={Routes.comment_path(:create, @comment)}> # or action={~p"/comments"} if using verified routes
  <.input field={f[:body]} />
</.form>