Working Example of Phoenix Built in Form Component: Difference between revisions
From ElixirBlocks
								
												
				 (Created page with "  <source>  defmodule AppWeb.PageLive do    use AppWeb, :live_view      def mount(_params, _session, socket)  do   {:ok, assign(socket, form: to_form(%{}, as: :my_form))}     end     def handle_event("save", params, socket) do     {:noreply, socket}   end     def render(assigns) do      ~H"""         <.form for={@form} phx-change="validate" phx-submit="save">         <.input type="text" field={@form[:username]} />         <.input type="email" field={@form[:email]} />...")  | 
				No edit summary  | 
				||
| (3 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
    use AppWeb, :live_view     |     use AppWeb, :live_view     | ||
    def mount(_params, _session, socket)  do  |     def mount(_params, _session, socket)  do  | ||
     {:ok, assign(socket, form: to_form(%{}, as: :my_form))}  | |||
{:ok, assign(socket, form: to_form(%{}, as: :my_form))}  | |||
    end  |     end  | ||
    def handle_event("save", params, socket) do  |     def handle_event("save", params, socket) do  | ||
     IO.inspect params  | |||
     {:noreply, socket}  | |||
   end  | |||
   def handle_event("validate", params, socket) do  | |||
      IO.inspect params  | |||
      {:noreply, socket}  | |||
    end  | |||
    def render(assigns) do  |     def render(assigns) do  | ||
      ~H"""  |       ~H"""  | ||
         <.form for={@form} phx-change="validate" phx-submit="save">  |          <.form for={@form} phx-change="validate" phx-submit="save">  | ||
           <.input type="text" field={@form[:username]} />  | |||
           <.input type="email" field={@form[:email]} />  | |||
            <button>Save</button>  |             <button>Save</button>  | ||
         </.form>  |          </.form>  | ||
Latest revision as of 19:02, 18 October 2023
defmodule AppWeb.PageLive do
   use AppWeb, :live_view  
   def mount(_params, _session, socket)  do
     {:ok, assign(socket, form: to_form(%{}, as: :my_form))}
   end
   def handle_event("save", params, socket) do
     IO.inspect params
     {:noreply, socket}
   end
   
   def handle_event("validate", params, socket) do
      IO.inspect params
      {:noreply, socket}
    end
   def render(assigns) do
     ~H"""
        <.form for={@form} phx-change="validate" phx-submit="save">
           <.input type="text" field={@form[:username]} />
           <.input type="email" field={@form[:email]} />
           <button>Save</button>
        </.form>
	 """ 
   end
end