HTML Forms তৈরি এবং প্রক্রিয়াকরণ

Elm এর Forms এবং Input Handling (Forms and Input Handling) - এল্ম (Elm) - Computer Programming

222

Elm এ HTML Forms তৈরি এবং প্রক্রিয়াকরণ

Elm একটি ফাংশনাল প্রোগ্রামিং ভাষা যা HTML Forms তৈরি এবং প্রক্রিয়াকরণের জন্য অত্যন্ত পরিষ্কার এবং সুশৃঙ্খল পদ্ধতি প্রদান করে। এই প্রক্রিয়াতে Forms এর মাধ্যমে ইউজার ইনপুট গ্রহণ করা হয় এবং সেই ইনপুট পরবর্তী প্রক্রিয়ায় ব্যবহার করা হয়। Elm তে ফর্ম তৈরি এবং প্রক্রিয়াকরণের জন্য Html, Html.Attributes, এবং Html.Events মডিউল ব্যবহার করা হয়।

এখানে ElmHTML Forms তৈরি এবং প্রক্রিয়াকরণের মৌলিক ধারণা এবং উদাহরণ দেওয়া হলো।


১. HTML Form তৈরি

Elm এ HTML ফর্ম তৈরি করতে, আমরা সাধারণত input, select, textarea, এবং button উপাদানগুলি ব্যবহার করি। এগুলির জন্য Html.Attributes এবং Html.Events মডিউল থেকে অ্যাট্রিবিউট এবং ইভেন্ট হ্যান্ডলিং ব্যবহৃত হয়।

উদাহরণ: একটি সিম্পল ফর্ম

module Main exposing (..)

import Html exposing (Html, div, input, button, text)
import Html.Attributes exposing (placeholder, type_)
import Html.Events exposing (onClick)

-- মডেল: ফর্মের ডেটা
type alias Model =
    { name : String
    , age : String
    }

-- ইনিশিয়াল স্টেট
init : Model
init = { name = "", age = "" }

-- মেসেজ
type Msg
    = SubmitForm

-- আপডেট: ফর্মের ডেটা আপডেট করা
update : Msg -> Model -> Model
update msg model =
    case msg of
        SubmitForm -> model

-- ভিউ: ফর্ম তৈরি করা
view : Model -> Html Msg
view model =
    div []
        [ div []
            [ input [ placeholder "Enter your name", type_ "text" ] []
            ]
        , div []
            [ input [ placeholder "Enter your age", type_ "text" ] []
            ]
        , button [ onClick SubmitForm ] [ text "Submit" ]
        , div [] [ text ("Name: " ++ model.name ++ ", Age: " ++ model.age) ]
        ]

-- মেইন: অ্যাপ্লিকেশন চালানো
main =
    Html.beginnerProgram { model = init, update = update, view = view }

এখানে:

  • Model: name এবং age নামে দুটি ফিল্ড ধারণ করে, যা ইউজারের ইনপুট নিবে।
  • SubmitForm: মেসেজটি ইনপুট ফর্ম সাবমিটের জন্য ব্যবহৃত হবে।
  • View: একটি ফর্ম তৈরি করা হয়েছে যেখানে দুটি input ফিল্ড এবং একটি submit বাটন রয়েছে।

২. ইনপুট ফিল্ডের ডেটা সংগ্রহ এবং আপডেট

Elm এ ফর্মের ইনপুটের ডেটা সংগ্রহ করা হয় onInput ইভেন্ট হ্যান্ডলার ব্যবহার করে। এই ইভেন্ট হ্যান্ডলার ইউজারের ইনপুট অনুযায়ী মডেল আপডেট করে।

উদাহরণ: ইনপুট ডেটা সংগ্রহ

module Main exposing (..)

import Html exposing (Html, div, input, button, text)
import Html.Attributes exposing (placeholder, type_)
import Html.Events exposing (onInput, onClick)

-- মডেল: ফর্মের ডেটা
type alias Model =
    { name : String
    , age : String
    }

-- ইনিশিয়াল স্টেট
init : Model
init = { name = "", age = "" }

-- মেসেজ
type Msg
    = UpdateName String
    | UpdateAge String
    | SubmitForm

-- আপডেট: মডেল আপডেট করা
update : Msg -> Model -> Model
update msg model =
    case msg of
        UpdateName newName -> { model | name = newName }
        UpdateAge newAge -> { model | age = newAge }
        SubmitForm -> model

-- ভিউ: ফর্ম তৈরি করা
view : Model -> Html Msg
view model =
    div []
        [ div []
            [ input [ placeholder "Enter your name", type_ "text", onInput UpdateName ] []
            ]
        , div []
            [ input [ placeholder "Enter your age", type_ "text", onInput UpdateAge ] []
            ]
        , button [ onClick SubmitForm ] [ text "Submit" ]
        , div [] [ text ("Name: " ++ model.name ++ ", Age: " ++ model.age) ]
        ]

-- মেইন: অ্যাপ্লিকেশন চালানো
main =
    Html.beginnerProgram { model = init, update = update, view = view }

এখানে:

  • onInput UpdateName: এই ইভেন্ট হ্যান্ডলারটি ইউজারের নাম ইনপুট ফিল্ডের পরিবর্তন ট্র্যাক করে এবং UpdateName মেসেজ পাঠায়।
  • onInput UpdateAge: এই ইভেন্ট হ্যান্ডলারটি ইউজারের বয়স ইনপুট ফিল্ডের পরিবর্তন ট্র্যাক করে এবং UpdateAge মেসেজ পাঠায়।

৩. ফর্ম সাবমিট করা

Submit মেসেজ ব্যবহার করে আমরা ফর্মটি সাবমিট করতে পারি। সাধারণত, ফর্মটি যখন সাবমিট হয় তখন ইনপুট ফিল্ডের ডেটা স্টেটে আপডেট হয়ে ইউজারের কনফার্মেশন বা রেসপন্স প্রদর্শন করা হয়।

উদাহরণ: ফর্ম সাবমিট

module Main exposing (..)

import Html exposing (Html, div, input, button, text)
import Html.Attributes exposing (placeholder, type_)
import Html.Events exposing (onInput, onClick)

-- মডেল: ফর্মের ডেটা
type alias Model =
    { name : String
    , age : String
    }

-- ইনিশিয়াল স্টেট
init : Model
init = { name = "", age = "" }

-- মেসেজ
type Msg
    = UpdateName String
    | UpdateAge String
    | SubmitForm

-- আপডেট: মডেল আপডেট করা
update : Msg -> Model -> Model
update msg model =
    case msg of
        UpdateName newName -> { model | name = newName }
        UpdateAge newAge -> { model | age = newAge }
        SubmitForm -> 
            -- ফর্ম সাবমিট করা
            model

-- ভিউ: ফর্ম তৈরি করা
view : Model -> Html Msg
view model =
    div []
        [ div []
            [ input [ placeholder "Enter your name", type_ "text", onInput UpdateName ] []
            ]
        , div []
            [ input [ placeholder "Enter your age", type_ "text", onInput UpdateAge ] []
            ]
        , button [ onClick SubmitForm ] [ text "Submit" ]
        , div [] [ text ("Name: " ++ model.name ++ ", Age: " ++ model.age) ]
        ]

-- মেইন: অ্যাপ্লিকেশন চালানো
main =
    Html.beginnerProgram { model = init, update = update, view = view }

এখানে, SubmitForm মেসেজ ফর্ম সাবমিটের জন্য ব্যবহৃত হচ্ছে। ইউজার যখন সাবমিট বাটনে ক্লিক করবেন, তখন ফর্মের স্টেট আপডেট হয়ে যাবে এবং ইউজার প্রাপ্ত ফলাফল প্রদর্শিত হবে।


৪. ফর্ম ভ্যালিডেশন (Form Validation)

Elm তে ফর্ম ভ্যালিডেশন করার জন্য ইনপুট ডেটার সঠিকতা যাচাই করা যায়। যেমন, আপনি বয়সের ক্ষেত্রে শুধুমাত্র সংখ্যাগুলি গ্রহণ করতে পারেন বা নামের ক্ষেত্রে শূন্যস্থান অনুমোদন নাও করতে পারেন।

উদাহরণ: ফর্ম ভ্যালিডেশন

module Main exposing (..)

import Html exposing (Html, div, input, button, text)
import Html.Attributes exposing (placeholder, type_)
import Html.Events exposing (onInput, onClick)

-- মডেল: ফর্মের ডেটা
type alias Model =
    { name : String
    , age : String
    , errorMessage : String
    }

-- ইনিশিয়াল স্টেট
init : Model
init = { name = "", age = "", errorMessage = "" }

-- মেসেজ
type Msg
    = UpdateName String
    | UpdateAge String
    | SubmitForm

-- আপডেট: মডেল আপডেট করা
update : Msg -> Model -> Model
update msg model =
    case msg of
        UpdateName newName -> { model | name = newName }
        UpdateAge newAge -> { model | age = newAge }
        SubmitForm ->
            if model.name == "" || model.age == "" then
                { model | errorMessage = "Please fill out both fields." }
            else
                { model | errorMessage = "" }

-- ভিউ: ফর্ম তৈরি করা
view : Model -> Html Msg
view model =
    div []
        [ div []
            [ input [ placeholder "Enter your name", type_ "text", onInput UpdateName ] []
            ]
        , div []
            [ input [ placeholder "Enter your age", type

_ "text", onInput UpdateAge ] []
            ]
        , button [ onClick SubmitForm ] [ text "Submit" ]
        , if model.errorMessage /= "" then
            div [] [ text model.errorMessage ]
          else
            div [] [ text ("Name: " ++ model.name ++ ", Age: " ++ model.age) ]
        ]

-- মেইন: অ্যাপ্লিকেশন চালানো
main =
    Html.beginnerProgram { model = init, update = update, view = view }

এখানে, SubmitForm মেসেজ ফর্মের ইনপুট যাচাই করে এবং যদি কোনো ইনপুট না থাকে, তবে একটি ত্রুটি বার্তা প্রদর্শন করে।


উপসংহার

ElmHTML ফর্ম তৈরি এবং প্রক্রিয়াকরণ সহজ এবং কার্যকরী। Elm এর Html, Html.Attributes, এবং Html.Events মডিউলগুলো ব্যবহার করে ফর্মের ইনপুট গ্রহণ এবং সেটি প্রক্রিয়াকরণ করা সম্ভব। আপনি ইউজারের ইনপুট সঠিকভাবে সংগ্রহ করতে পারবেন, ফর্মের সাবমিট করার সময় স্টেট আপডেট করতে পারবেন এবং ভ্যালিডেশন এর মাধ্যমে ডেটার সঠিকতা নিশ্চিত করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...