Form
ফর্ম
ফর্ম (Form)
১. ভূমিকা — তুমি কি কখনো ভর্তি ফরম পূরণ করেছ?
কলেজে ভর্তির সময় তোমাকে একটা কাগজের ফরম দেওয়া হয়েছিল। তাতে ঘর ছিল — নাম, জন্ম তারিখ, ঠিকানা, ছেলে/মেয়ে বেছে নেওয়ার বৃত্ত।
তুমি ঘরগুলো পূরণ করে ফরমটা অফিসে জমা দিলে। অফিস সেই তথ্য খাতায় তুলল।
এখন ভাবো — তুমি যখন Facebook-এ অ্যাকাউন্ট খোলো, bKash-এ লগইন করো, Google-এ সার্চ করো — প্রতিবার তুমি তথ্য দিচ্ছ আর কেউ সেটা নিচ্ছে।
এই ডিজিটাল কাগজের ফরমই হলো HTML Form (ফর্ম)।
২. সমস্যা — Website তোমার কাছ থেকে তথ্য নেবে কীভাবে?
এতক্ষণ আমরা শিখেছি Website কীভাবে আমাদের তথ্য দেখায় — heading, ছবি, টেবিল।
কিন্তু যোগাযোগ তো একমুখী হলে চলবে না। অনেক সময় Website-কেও আমাদের কাছ থেকে তথ্য নিতে হয়:
- লগইন করতে ইউজারনেম-পাসওয়ার্ড
- রেজিস্ট্রেশনে নাম-ইমেইল
- সার্চ করতে সার্চ শব্দ
আসল সমস্যা: user-এর কাছ থেকে তথ্য সংগ্রহ করে Server-এ পাঠানোর একটা ব্যবস্থা দরকার।
এই সমস্যার সমাধান — HTML Form।
৩. চিত্রের মাধ্যমে বোঝো
Form কীভাবে কাজ করে:
user ফরম পূরণ করে
↓
Submit বোতাম চাপে
↓
data → action-এ দেওয়া URL-এ যায়
↓
Server data গ্রহণ করে, প্রক্রিয়া করে
↓
Server উত্তর পাঠায় (সফল/ব্যর্থ)
৪. বাস্তব জীবনের সাথে মিল
ব্যাংকের জমা স্লিপের সাথে তুলনা করো:
| জমা স্লিপ | HTML Form |
|---|---|
| পুরো স্লিপ কাগজ | <form> |
| লেখার ঘর | <input> |
| ছেলে/মেয়ে বৃত্ত | radio button |
| একাধিক টিক বক্স | checkbox |
| জমা দেওয়া | submit button |
| ঘরের পাশের লেখা | <label> |
| ক্যাশিয়ারের কাছে যাওয়া | action-এ data পাঠানো |
Module 1: সংজ্ঞা ও মূল কাঠামো
Form কী?
Form (ফর্ম) হলো HTML-এর একটি অংশ যা user-এর কাছ থেকে তথ্য সংগ্রহ করে এবং প্রক্রিয়াকরণের জন্য Server-এ পাঠায়।
Form-এর কাঠামো
<form action="submit.php" method="POST">
<!-- ইনপুট element এখানে -->
<input type="submit" value="জমা দাও">
</form>
Form-এর প্রধান Attribute
| Attribute | কাজ |
|---|---|
action | data কোথায় (কোন URL-এ) পাঠানো হবে |
method | data কীভাবে পাঠানো হবে — GET অথবা POST |
Module 2: GET বনাম POST
method attribute-এ দুটি মান হতে পারে:
| বিষয় | GET | POST |
|---|---|---|
| data কোথায় দেখা যায় | URL-এ দৃশ্যমান | লুকানো |
| নিরাপত্তা | কম নিরাপদ | বেশি নিরাপদ |
| data-র পরিমাণ | সীমিত | বড় পরিমাণ সম্ভব |
| ব্যবহার | সার্চ, ফিল্টার | লগইন, পাসওয়ার্ড |
💡 পাসওয়ার্ড বা সংবেদনশীল তথ্যে সবসময় POST ব্যবহার করো — GET-এ data URL-এ দেখা যায়।
Module 3: Input Type — বিভিন্ন ধরনের ঘর
<input> tag-এর type attribute বদলে নানা ধরনের ঘর তৈরি হয়:
| type | কাজ |
|---|---|
text | সাধারণ লেখার ঘর |
email | ইমেইল ঘর (যাচাই সহ) |
password | পাসওয়ার্ড — লেখা দেখা যায় না |
number | শুধু সংখ্যা |
date | তারিখ নির্বাচন |
radio | একদল থেকে একটি বেছে নেওয়া |
checkbox | একাধিক বেছে নেওয়া |
file | ফাইল আপলোড |
submit | ফরম জমা দেওয়ার বোতাম |
reset | সব ঘর মুছে ফেলা |
<input type="text" name="name" placeholder="তোমার নাম">
<input type="email" name="email">
<input type="password" name="pass">
<input type="date" name="dob">
radio বনাম checkbox
লিঙ্গ: <input type="radio" name="gender" value="male"> ছেলে
<input type="radio" name="gender" value="female"> মেয়ে
শখ: <input type="checkbox" name="hobby" value="read"> পড়া
<input type="checkbox" name="hobby" value="game"> খেলা
| বিষয় | radio | checkbox |
|---|---|---|
| নির্বাচন | একটিই | একাধিক |
| আকৃতি | গোলাকার | বর্গাকার |
| একদল চিহ্নিত | একই name | একই name |
Module 4: অন্যান্য Form Element
textarea — বড় লেখার ঘর
একাধিক লাইনের লেখার জন্য (যেমন ঠিকানা, বার্তা)।
<textarea name="message" rows="4" cols="30"></textarea>
select ও option — Dropdown তালিকা
<select name="district">
<option value="dhaka">ঢাকা</option>
<option value="ctg">চট্টগ্রাম</option>
<option value="sylhet">সিলেট</option>
</select>
label — ঘরের নাম
<label> ইনপুট ঘরের পরিচয় দেয়। accessibility (সবার জন্য সহজ ব্যবহার)-এর জন্য জরুরি।
<label>নাম:</label>
<input type="text" name="name">
Module 5: ব্যবহারিক উদাহরণ — ভর্তি ফরম
<!DOCTYPE html>
<html>
<head><title>ভর্তি ফরম</title></head>
<body>
<h1>অনলাইন ভর্তি ফরম</h1>
<form action="submit.php" method="POST">
<label>নাম:</label><br>
<input type="text" name="name" placeholder="পুরো নাম"><br><br>
<label>ইমেইল:</label><br>
<input type="email" name="email"><br><br>
<label>জন্ম তারিখ:</label><br>
<input type="date" name="dob"><br><br>
<label>লিঙ্গ:</label>
<input type="radio" name="gender" value="male"> ছেলে
<input type="radio" name="gender" value="female"> মেয়ে<br><br>
<label>বিভাগ:</label>
<select name="dept">
<option value="science">বিজ্ঞান</option>
<option value="commerce">ব্যবসায় শিক্ষা</option>
<option value="arts">মানবিক</option>
</select><br><br>
<label>ঠিকানা:</label><br>
<textarea name="address" rows="3" cols="30"></textarea><br><br>
<input type="submit" value="জমা দাও">
<input type="reset" value="মুছে ফেলো">
</form>
</body>
</html>
Module 6: গুরুত্বপূর্ণ Attribute
| Attribute | কাজ |
|---|---|
name | প্রতিটি ইনপুটের নাম — Server এ দিয়ে data চেনে |
placeholder | ঘর ফাঁকা থাকলে hint লেখা দেখায় |
value | ঘরের পূর্বনির্ধারিত মান / radio-checkbox-এর মান |
required | ঘরটি পূরণ বাধ্যতামূলক করে |
rows, cols | textarea-র আকার |
name কেন গুরুত্বপূর্ণ? Server data পায় name=value জোড়া হিসেবে। name না থাকলে Server বুঝবে না কোন তথ্য কী — data হারিয়ে যাবে।
Module 7: সাধারণ ভুল ও সতর্কতা
ভুল ১: radio button-এ আলাদা name দেওয়া
একই দলের radio-তে একই
nameদিতে হয়। আলাদা দিলে একাধিক বেছে নেওয়া যাবে — যা radio-র উদ্দেশ্যের বিরুদ্ধে।
ভুল ২: name attribute ভুলে যাওয়া
nameছাড়া ইনপুটের data Server-এ পৌঁছায় না।
ভুল ৩: action না দেওয়া
actionনা থাকলে data কোথায় যাবে browser বোঝে না।
ভুল ৪: পাসওয়ার্ডে GET method
পাসওয়ার্ড GET-এ পাঠালে URL-এ দেখা যায় — অনিরাপদ। POST ব্যবহার করো।
Module 8: সুবিধা-অসুবিধা
| বিষয় | সুবিধা | অসুবিধা |
|---|---|---|
| GET method | URL bookmark করা যায় | data দৃশ্যমান, অনিরাপদ |
| POST method | নিরাপদ, বড় data | bookmark করা যায় না |
| required attribute | ফাঁকা ফরম আটকায় | user বিরক্ত হতে পারে |
| dropdown (select) | জায়গা বাঁচে | বিকল্প দেখতে click লাগে |
🔁 নিজে পরীক্ষা করো
MCQ:
১. Form-এর data কোথায় যাবে তা ঠিক করে কোন attribute?
- ক) action ✓
- খ) method
- গ) name
- ঘ) value
২. একদল থেকে শুধুমাত্র একটি option বেছে নিতে —
- ক) checkbox
- খ) radio ✓
- গ) text
- ঘ) select
৩. পাসওয়ার্ড পাঠাতে কোন method নিরাপদ?
- ক) GET
- খ) POST ✓
- গ) SEND
- ঘ) PUT
৪. বড়, একাধিক লাইনের লেখার জন্য কোন element?
- ক)
<input type="text"> - খ)
<textarea>✓ - গ)
<select> - ঘ)
<label>
৫. ইনপুট ঘর ফাঁকা থাকলে hint লেখা দেখায় কোন attribute?
- ক) value
- খ) name
- গ) placeholder ✓
- ঘ) required
সংক্ষিপ্ত প্রশ্ন:
৬. GET ও POST method-এর পার্থক্য লেখো।
৭. radio button ও checkbox-এর পার্থক্য উদাহরণসহ লেখো।
📝 HSC পরীক্ষার প্রস্তুতি
১. একটি লগইন ফরম তৈরির HTML কোড লেখো (ইউজারনেম, পাসওয়ার্ড, submit বোতাম সহ)।
২. <form> tag-এ action ও method attribute-এর কাজ ব্যাখ্যা করো।
৩. একটি জরিপ (survey) ফরম বানাও যাতে text, radio, checkbox, select ও textarea — পাঁচ ধরনের ইনপুট থাকবে।
💡 পরীক্ষার টিপস: Form ও input type — HSC ব্যবহারিক পরীক্ষার সবচেয়ে গুরুত্বপূর্ণ টপিক। radio, checkbox, select, textarea বেশি অনুশীলন করো।
🎯 অনুশীলন প্রশ্ন
সহজ: নাম ও ইমেইল ঘর সহ একটি সাধারণ যোগাযোগ ফরম লেখো।
মাঝারি: একটি ভর্তি ফরম বানাও যেখানে radio দিয়ে লিঙ্গ ও select দিয়ে বিভাগ বেছে নেওয়া যাবে।
কঠিন: একটি অনলাইন কুইজ ফরম বানাও — প্রতিটি প্রশ্নে radio দিয়ে ৪টি বিকল্প, শেষে submit বোতাম। name attribute সঠিকভাবে ব্যবহার করো।
✅ সারাংশ
🎯 মনে রেখো:
- Form = user-এর কাছ থেকে তথ্য নিয়ে Server-এ পাঠানোর HTML কাঠামো
<form>-এর attribute:action(কোথায় যাবে) ওmethod(কীভাবে — GET/POST)- GET → data URL-এ দৃশ্যমান, কম নিরাপদ; POST → লুকানো, নিরাপদ
- Input type: text, email, password, number, date, radio, checkbox, file, submit, reset
- radio → একটি বেছে নেওয়া; checkbox → একাধিক
- অন্যান্য:
<textarea>(বড় লেখা),<select>+<option>(dropdown),<label>(ঘরের নাম) - প্রতিটি ইনপুটে
nameঅবশ্যই দিতে হবে — না হলে data Server-এ পৌঁছায় না