Comment

PHP প্রসেসিং ফর্ম (Processing Forms)

PHP রেডিও বোতাম (Radio button)

Estimated reading: 3 minutes 10 views Contributors

সারাংশ: এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে রেডিও বোতাম দিয়ে একটি ফর্ম তৈরি করতে হয় এবং পিএইচপি-তে রেডিও গ্রুপগুলি পরিচালনা করতে হয়।

রেডিও বোতাম পরিচিতি

একটি রেডিও বোতাম তৈরি করতে, আপনি রেডিও টাইপ সহ <input> উপাদান ব্যবহার করুন। উদাহরণ স্বরূপ:

<input type="radio" name="contact" id="contact_email" value="email" />

একটি রেডিও বোতামের একটি লেবেল নেই। অতএব, আপনার সর্বদা এই মত একটি <label> উপাদান সহ একটি রেডিও বোতাম ব্যবহার করা উচিত:

<input type="radio" name="contact" id="contact_email" value="email"/>
<label for="contact_email">Email</label>

একটি <label> উপাদানের সাথে একটি রেডিও বোতাম যুক্ত করতে, লেবেলের বৈশিষ্ট্যের মান রেডিও বোতামের আইডির মানের সমান হতে হবে।

একটি রেডিও বোতামের দুটি অবস্থা আছে: চেক করা এবং আনচেক করা।

আপনি যখন একটি রেডিও বোতামের সাথে একটি লেবেল লিঙ্ক করেন, তখন আপনি লেবেল বা রেডিও বোতামটি ক্লিক করে রেডিও বোতামটি পরীক্ষা করতে পারেন৷ তাই, লেবেলটি রেডিও বোতামের ব্যবহারযোগ্যতা বাড়ায় কারণ এটি নির্বাচনের এলাকা প্রসারিত করে।

বিকল্পভাবে, আপনি এইরকম একটি <label> উপাদানের মধ্যে রেডিও বোতাম রাখতে পারেন:

<label>
    <input type="radio" name="contact_email" value="email"> Email
</label>

এই ক্ষেত্রে, জন্য এবং আইডি বৈশিষ্ট্যের সাথে মিল না করে রেডিও লেবেলের সাথে লিঙ্ক করে।

পৃষ্ঠাটি প্রথমবার লোড হলে স্বয়ংক্রিয়ভাবে একটি রেডিও বোতাম নির্বাচন করতে, আপনি চেক করা বুলিয়ান অ্যাট্রিবিউট ব্যবহার করতে পারেন:

<input type="radio" name="contact" id="contact_email" value="email" checked />
<label for="contact_email">Email</label>

একটি রেডিও গ্রুপ সংজ্ঞায়িত করুন অনুশীলনে,

আপনি প্রায়শই একটি গ্রুপে রেডিও বোতাম ব্যবহার করেন। রেডিও বোতামের একটি গ্রুপকে রেডিও গ্রুপ বলা হয়। একটি রেডিও গ্রুপ আপনাকে একবারে শুধুমাত্র একটি রেডিও বোতাম নির্বাচন করতে দেয়।

আপনি যদি একটি গোষ্ঠীতে কোনো রেডিও বোতাম নির্বাচন করেন, তবে একই গ্রুপে বর্তমানে নির্বাচিত রেডিও বোতামটি স্বয়ংক্রিয়ভাবে অনির্বাচিত হবে।

একটি রেডিও গ্রুপ সংজ্ঞায়িত করতে, আপনি একই গ্রুপের সমস্ত রেডিও বোতামে একই নাম বরাদ্দ করুন। নিম্নলিখিত উদাহরণটি একটি রেডিও গ্রুপকে সংজ্ঞায়িত করে যা দুটি রেডিও বোতাম নিয়ে গঠিত।

<input type="radio" name="contact" id="contact_email" value="email" />
<label for="contact_email">Email</label>

<input type="radio" name="contact" id="contact_phone" value="phone" />
<label for="contact_phone">Phone</label>

PHP-তে রেডিও বোতাম পরিচালনা করুন

যখন একটি ফর্মের একটি নাম সহ একটি রেডিও বোতাম থাকে, আপনি অনুরোধের পদ্ধতির উপর নির্ভর করে $_POST বা $_GET অ্যারে অ্যাক্সেস করে চেক করা রেডিও বোতামটি পেতে পারেন।

যদি একটি রেডিও বোতাম চেক না করা হয়, $_POST বা $_GET-এ রেডিও বোতামের কী থাকে না। অতএব, একটি রেডিও বোতাম চেক করা হয়েছে কিনা তা পরীক্ষা করার জন্য আপনাকে isset() ফাংশন ব্যবহার করতে হবে:

isset($_POST['radio_name'])

বিকল্পভাবে, আপনি filter_has_var() ফাংশন ব্যবহার করতে পারেন:

filter_has_var(INPUT_POST, 'radio_name')

filer_has_var() যদি INPUT_POST-এ রেডিও বোতামের নাম খুঁজে পায় তাহলে তা সত্য হয়ে ওঠে। যদি একটি রেডিও বোতাম চেক করা হয়, আপনি রেডিও বোতামের নাম ব্যবহার করে $_POST থেকে রেডিও বোতামের মান পাবেন:

$_POST['radio_name']

PHP রেডিও বোতাম উদাহরণ

আমরা একটি রেডিও গ্রুপের সাথে একটি সাধারণ ফর্ম তৈরি করব। আপনি যদি কোনও বিকল্প নির্বাচন না করেন এবং ফর্মটি জমা দেন তবে এটি একটি ত্রুটি বার্তা দেখাবে। অন্যথায়, এটি নির্বাচিত রেডিও বোতামের মান দেখাবে।

প্রথমে, নিম্নলিখিত ডিরেক্টরি এবং ফাইল কাঠামো তৈরি করুন:

.
├── css
|  └── style.css
├── inc
|  ├── footer.php
|  ├── get.php
|  ├── header.php
|  └── post.php
└── index.php
FileDirecotryDescription
index.phpincHTTP অনুরোধ পদ্ধতির উপর নির্ভর করে get.php বা post.php লোড করে এমন প্রধান যুক্তি ধারণ করুন
header.phpincHTML হেডার ধারণ করুন
footer.phpincHTML ফুটার ধারণ করুন
get.phpincরেডিও বোতাম সহ একটি ফর্ম দেখানোর জন্য কোড ধারণ করুন যখন HTTP অনুরোধ GET হয়।
post.phpincPOST অনুরোধ পরিচালনার জন্য কোড ধারণ করুন
style.csscssCSS কোড ধারণ করুন

দ্বিতীয়ত, header.php ফাইলে নিম্নলিখিত কোড যোগ করুন:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>PHP Radio Button</title>
    <link rel="stylesheet" href="css/style.css">
</head>

<body>
    <main>

তৃতীয়ত, footer.php ফাইলে নিম্নলিখিত কোড যোগ করুন:

    </main>
</body>
</html>

চতুর্থ, index.php ফাইলে নিম্নলিখিত কোড যোগ করুন:

<?php

require __DIR__ . '/inc/header.php';

$contacts = [
	'email' => 'Email',
	'phone' => 'Phone'
];

$errors = [];

$request_method = strtoupper($_SERVER['REQUEST_METHOD']);

if ($request_method === 'GET') {
	require __DIR__ . '/inc/get.php';
} elseif ($request_method === 'POST') {
	require __DIR__ . '/inc/post.php';
}

require __DIR__ . '/inc/footer.php';

কিভাবে এটা কাজ করে.

$contacts অ্যারে গতিশীলভাবে রেডিও বোতাম তৈরি করতে ব্যবহৃত হয়। একটি বাস্তব অ্যাপ্লিকেশনে, ডেটা একটি ডাটাবেস টেবিল বা একটি API কলের ফলাফল থেকে আসতে পারে।

ত্রুটি বার্তা সংগ্রহ করতে $errors অ্যারে ব্যবহার করা হয়।

HTTP অনুরোধ পদ্ধতি পেতে, আপনি $_SERVER অ্যারের ‘REQUEST_METHOD’ কী অ্যাক্সেস করেন। strtoupper() ফাংশন অনুরোধের পদ্ধতিকে বড় হাতের অক্ষরে রূপান্তর করে।

$request_method = strtoupper($_SERVER['REQUEST_METHOD']);

অনুরোধ GET হলে index.php ফাইলটি inc ডিরেক্টরি থেকে get.php লোড করে। যখন ফর্মটি POST অনুরোধের সাথে জমা দেওয়া হয়, তখন index.php inc ডিরেক্টরি থেকে post.php লোড করে:

if ($request_method === 'GET') {
	require __DIR__ . '/inc/get.php';
} elseif ($request_method === 'POST') {
	require __DIR__ . '/inc/post.php';
}

পঞ্চম, get.php ফাইলে একটি ফর্ম তৈরি করুন:

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
    <div>Please choose your preferred method of contact:</div>
    <?php foreach ($contacts as $key => $value) : ?>
        <div>
            <input type="radio" name="contact" id="contact_<?php echo $key ?>" value="<?php echo $key ?>" />
            <label for="contact_<?php echo $key ?>"><?php echo $value ?></label>
        </div>
    <?php endforeach ?>
    <div>
        <small class="error"><?php echo $errors['contact'] ?? '' ?></small>
    </div>
    <div>
        <button type="submit">Submit</button>
    </div>
</form>

$contacts অ্যারে থেকে একটি রেডিও গোষ্ঠী তৈরি করতে নিম্নলিখিত কোডটি একটি foreach স্টেটমেন্ট ব্যবহার করে:

<?php foreach ($contacts as $key => $value) : ?>
<div>
    <input type="radio" name="contact" id="contact_<?php echo $key ?>" value="<?php echo $key ?>" />
    <label for="contact_<?php echo $key ?>">
        <?php echo $value ?>
    </label>
</div>
<?php endforeach ?>

নিম্নলিখিত কোড $errors অ্যারে থেকে ত্রুটি বার্তা দেখায়. উল্লেখ্য যে আমরা নাল কোলেসিং অপারেটর (??) ব্যবহার করি যা PHP 7+ এ উপলব্ধ।

অভিব্যক্তি $errors[‘contact’] ?? ” $errors[‘contact’] রিটার্ন করে যদি এটি বিদ্যমান থাকে এবং নাল না হয় অথবা ” অন্যথায়।

<small class="error"><?php echo $errors['contact'] ?? '' ?></small>

অবশেষে, কোডটি যোগ করুন যা POST অনুরোধ পরিচালনা করে:

<?php

// sanitize the contact
$contact = filter_input(INPUT_POST, 'contact', FILTER_SANITIZE_STRING);

// check the selected value against the original values
if ($contact && array_key_exists($contact, $contacts)) {
	$contact = htmlspecialchars($contact);
} else {
	$errors['contact'] = 'Please select at least an option.';
}

if (count($errors)) {
	require __DIR__ .  '/get.php';
} else {
	echo <<<html
	You selected to be contacted via <strong> $contact</strong>.
	<a href="index.php">Back to the form</a>
	html;
}

কিভাবে post.php কাজ করে।

filter_input() ফাংশন চেক করা রেডিও বোতামের মানকে স্যানিটাইজ করে। জমা দেওয়া মানটি বৈধ কিনা তা নিশ্চিত করতে, আমরা array_key_exists() ফাংশন ব্যবহার করে $contact অ্যারের কীগুলির সাথে এটি পরীক্ষা করি।

যদি জমা দেওয়া মানটি অ্যারে কীগুলির একটির সাথে মিলে যায়, আমরা একটি বার্তা দেখাই। অন্যথায়, আমরা $errors অ্যারেতে একটি ত্রুটি বার্তা যোগ করি।

শেষ if…else স্টেটমেন্টে, আমরা ফর্ম (get.php) লোড করি যা $errors অ্যারে খালি না থাকলে একটি ত্রুটি বার্তা দেখায়। অন্যথায়, আমরা একটি নিশ্চিতকরণ বার্তা দেখান।

সারসংক্ষেপ

  • একটি রেডিও বোতাম তৈরি করতে type=”radio” দিয়ে ইনপুট ব্যবহার করুন।
  • একটি রেডিও গ্রুপ সংজ্ঞায়িত করতে একাধিক রেডিও বোতামের জন্য একই নাম ব্যবহার করুন।
  • অনুরোধের পদ্ধতির উপর নির্ভর করে $_POST (বা $_GET) ভেরিয়েবলের মাধ্যমে চেক করা রেডিওর মান পান।

Leave a Comment

Share this Doc

PHP রেডিও বোতাম (Radio button)

Or copy link

CONTENTS

Subscribe

×
Cancel