Comment

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

PHP চেকবক্স (Checkbox)

Estimated reading: 3 minutes 11 views Contributors

সারাংশ: এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে এক বা একাধিক চেকবক্স সহ একটি ফর্ম প্রক্রিয়া করতে PHP ব্যবহার করতে হয়।

চেকবক্স উপাদান এর সাথে দ্রুত পরিচিতি

একটি চেকবক্স আপনাকে একটি ফর্ম জমা দেওয়ার জন্য একটি একক মান নির্বাচন করতে দেয়। একটি চেকবক্স তৈরি করতে, আপনি নিম্নরূপ চেকবক্স টাইপ সহ ইনপুট উপাদান ব্যবহার করুন:

<input type="checkbox" name="checkbox_name" value="checkox_value">

একটি চেকবক্সের দুটি অবস্থা আছে: চেক করা এবং আনচেক করা। আপনি যদি চেকবক্সটি চেক করেন এবং POST পদ্ধতি ব্যবহার করে ফর্মটি জমা দেন, $_POST অ্যাসোসিয়েটিভ অ্যারেতে একটি উপাদান থাকবে যার কী হল checkbox_name এবং মান হল checkbox_value.

echo $_POST['checkbox_name']; // 'checkbox_value'

যাইহোক, আপনি চেকবক্সটি আনচেক করলে এবং ফর্ম জমা দিলে, $_POST-এ কী চেকবক্স_নাম সহ কোনো উপাদান থাকবে না। এর মানে হল যে নিম্নলিখিত অভিব্যক্তিটি মিথ্যা ফেরত দেয়:

isset($_POST['checkbox_name'])

একটি চেকবক্স চেক করা হয়েছে কিনা তা পরীক্ষা করার জন্য, আপনি filter_has_var() ফাংশনটি এইভাবে ব্যবহার করতে পারেন:

if(filter_has_var(INPUT_POST,'checkbox_name')) {
     // ...
}

INPUT_POST-এ checkbox_name বিদ্যমান থাকলে filter_has_var() ফাংশনটি সত্য হয়।

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

if(filter_has_var(INPUT_POST,'checkbox_name')) {
     // ...
}

INPUT_POST-এ checkbox_name বিদ্যমান থাকলে filter_has_var() ফাংশনটি সত্য হয়। একটি চেকবক্স কোন লেবেল আছে. অতএব, আপনার সর্বদা এই মত একটি <label> উপাদান সহ একটি চেকবক্স ব্যবহার করা উচিত:

<input type="checkbox" name="agree" id="agree">
<label for="agree">I agree</label>

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

একটি লেবেলের সাথে একটি চেকবক্স যুক্ত করার আরেকটি উপায় হল এইভাবে লেবেলের ভিতরে চেকবক্স স্থাপন করা:

<label>
    <input type="checkbox" name="agree"> I agree
</label>

এই ক্ষেত্রে, আপনাকে চেকবক্সের জন্য আইডি এবং লেবেলের জন্য বৈশিষ্ট্য উল্লেখ করতে হবে না।

একটি সাধারণ PHP চেকবক্স উদাহরণ

আমরা একটি চেকবক্স এবং একটি জমা বোতাম সহ একটি সাধারণ ফর্ম তৈরি করব৷

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

.
├── css
│   └── style.css
├── inc
│   ├── .htaccess
│   ├── get.php
│   └── post.php
└── index.php
FileDirectoryDescription
index.php.Contain the main logic that loads get.php or post.php depending on the HTTP request method
header.phpincContain the header code
footer.phpincContain the footer code
get.phpincContain the code for showing a form with a checkbox when the HTTP request is GET.
post.phpincContain the code for handling POST request
.htaccessincPrevent direct access to the files in the inc directory
style.csscssContain the CSS code

index.php

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

<?php

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

$errors = [];

$request_method = $_SERVER['REQUEST_METHOD'];

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

if ($errors) {
	require __DIR__ . '/inc/get.php';
} 

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

যদি HTTP অনুরোধ পদ্ধতি GET হয় তাহলে index.php get.php ফাইল থেকে ফর্মটি লোড করে। এবং ফর্ম জমা দিলে post.php ফাইল লোড হয়। $errors ভেরিয়েবল ত্রুটি বার্তা সংরক্ষণ করতে ব্যবহৃত হয়.

header.php

তৃতীয়ত, নিম্নলিখিত কোডটি 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 Checkbox</title>
    <link rel="stylesheet" href="css/style.css">
</head>

<body class="center">
    <main>

footer.php

চতুর্থত, footer.php ফাইলটিতে header.php ফাইলের খোলার ট্যাগের সাথে সম্পর্কিত এনক্লোসিং ট্যাগ রয়েছে:

</main>
</body>

</html>

get.php

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

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
    <div>
        <label for="agree"> <input type="checkbox" name="agree" value="yes" id="agree" /> I agree to the <a href="#" title="term of service"> Term of Service</a></label>
        <small class="error"><?php echo $errors['agree'] ?? '' ?>
        </small>
    </div>

    <div>
        <button type="submit">Join Us</button>
    </div>
</form>

post.php

ষষ্ঠত, ফর্ম ডেটা স্যানিটাইজ এবং যাচাই করতে post.php ফাইলে নিম্নলিখিত কোড যোগ করুন:

<?php

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

// check against the valid value
if ($agree) {
	echo  'Thank you for joining us!';
} else {
	$errors['agree'] = 'To join us, you need to agree to the TOS.';
}

সারসংক্ষেপ

একটি চেকবক্স চেক করা হয়েছে কিনা তা পরীক্ষা করতে isset() বা filter_has_var() ব্যবহার করুন।

Leave a Comment

Share this Doc

PHP চেকবক্স (Checkbox)

Or copy link

CONTENTS

Subscribe

×
Cancel