ফর্ম এলিমেন্টস (ইনপুট, সিলেক্ট, বাটন)

Forms এবং Input Validation - জেন্ড ফ্রেমওয়ার্ক (Zend Framework) - Web Development

249

Zend Framework (এখন Laminas) এ ফর্ম এবং ফর্ম এলিমেন্টস তৈরি করা অত্যন্ত সহজ এবং কাস্টমাইজযোগ্য। ফর্ম এলিমেন্টগুলি ফর্মের বিভিন্ন ইনপুট ফিল্ড, সিলেক্ট বক্স, এবং বাটনগুলোকে রিপ্রেজেন্ট করে। ফর্ম এলিমেন্টগুলোর মাধ্যমে ইউজার ইনপুট সংগ্রহ করা হয় এবং পরে তা প্রক্রিয়া করা হয়।

ফর্ম এলিমেন্টস সাধারণত Zend\Form নেমস্পেসে থাকে এবং ইনপুট ফিল্ড, সিলেক্ট বক্স, বাটন ইত্যাদি বিভিন্ন ধরনের এলিমেন্ট হিসেবে ব্যবহৃত হয়। এই গাইডে, আমরা কীভাবে ইনপুট, সিলেক্ট এবং বাটন ফর্ম এলিমেন্ট তৈরি এবং কনফিগার করব তা দেখবো।


ফর্ম এলিমেন্টস তৈরি করা

Zend Framework এ ফর্ম এলিমেন্টগুলি সাধারণত Zend\Form\Form ক্লাসের মধ্যে অন্তর্ভুক্ত থাকে। ফর্মের জন্য আপনি যেকোনো ধরনের এলিমেন্ট ব্যবহার করতে পারেন, যেমন ইনপুট ফিল্ড, সিলেক্ট বক্স, চেকবক্স, রেডিও বাটন, বাটন ইত্যাদি।


ইনপুট এলিমেন্ট তৈরি করা

ইনপুট এলিমেন্ট এমন একটি ফর্ম ফিল্ড, যেখানে ইউজার কোনো তথ্য প্রদান করতে পারে। এটি সাধারণত Text, Email, Password ইত্যাদি টাইপের হয়।

১. ইনপুট এলিমেন্ট তৈরি করা

Input এলিমেন্টটি তৈরি করতে হলে, আপনি Zend\Form\Element\Text বা অন্যান্য উপযুক্ত এলিমেন্ট ব্যবহার করতে পারেন।

Form Class Example:

<?php
namespace Application\Form;

use Laminas\Form\Form;
use Laminas\Form\Element;

class UserForm extends Form
{
    public function __construct($name = null)
    {
        parent::__construct('user-form');

        // নামের জন্য ইনপুট ফিল্ড
        $this->add([
            'name' => 'name',
            'type' => Element\Text::class,
            'options' => [
                'label' => 'Name',
            ],
        ]);

        // ইমেইল এর জন্য ইনপুট ফিল্ড
        $this->add([
            'name' => 'email',
            'type' => Element\Email::class,
            'options' => [
                'label' => 'Email',
            ],
        ]);

        // পাসওয়ার্ড এর জন্য ইনপুট ফিল্ড
        $this->add([
            'name' => 'password',
            'type' => Element\Password::class,
            'options' => [
                'label' => 'Password',
            ],
        ]);
    }
}

এখানে, আমরা তিনটি ইনপুট এলিমেন্ট তৈরি করেছি: name, email, এবং password। প্রতিটি ইনপুট ফিল্ডের জন্য Element\Text, Element\Email, এবং Element\Password টাইপ ব্যবহার করা হয়েছে।


সিলেক্ট এলিমেন্ট তৈরি করা

সিলেক্ট এলিমেন্ট একটি ড্রপডাউন মেনু হিসেবে কাজ করে, যেখানে ইউজার একটি অপশন নির্বাচন করতে পারে।

২. সিলেক্ট এলিমেন্ট তৈরি করা

Select এলিমেন্টটি তৈরি করতে হলে, আপনি Zend\Form\Element\Select ব্যবহার করতে পারেন।

Form Class Example:

<?php
namespace Application\Form;

use Laminas\Form\Form;
use Laminas\Form\Element;

class UserForm extends Form
{
    public function __construct($name = null)
    {
        parent::__construct('user-form');

        // সিলেক্ট এলিমেন্ট (যেমন দেশ নির্বাচন)
        $this->add([
            'name' => 'country',
            'type' => Element\Select::class,
            'options' => [
                'label' => 'Country',
                'value_options' => [
                    'us' => 'United States',
                    'ca' => 'Canada',
                    'uk' => 'United Kingdom',
                ],
            ],
        ]);
    }
}

এখানে, Element\Select ব্যবহার করে একটি সিলেক্ট বক্স তৈরি করা হয়েছে, যেখানে তিনটি দেশ (United States, Canada, United Kingdom) নির্বাচন করার জন্য অপশন দেওয়া হয়েছে।

value_options অ্যারে ব্যবহার করে সিলেক্ট বক্সের ভ্যালু এবং প্রদর্শিত টেক্সট নির্ধারণ করা হয়।


বাটন এলিমেন্ট তৈরি করা

বাটন এলিমেন্ট ফর্ম সাবমিট করার জন্য বা অন্যান্য ক্রিয়াকলাপের জন্য ব্যবহার করা হয়। এটি Zend\Form\Element\Submit বা Zend\Form\Element\Button এর মতো হতে পারে।

৩. বাটন এলিমেন্ট তৈরি করা

Submit Button তৈরি করতে হলে, Zend\Form\Element\Submit ব্যবহার করতে পারেন, এবং সাধারণ বাটন তৈরি করতে হলে Zend\Form\Element\Button ব্যবহার করা যায়।

Form Class Example:

<?php
namespace Application\Form;

use Laminas\Form\Form;
use Laminas\Form\Element;

class UserForm extends Form
{
    public function __construct($name = null)
    {
        parent::__construct('user-form');

        // সাবমিট বাটন
        $this->add([
            'name' => 'submit',
            'type' => Element\Submit::class,
            'attributes' => [
                'value' => 'Submit',
                'id'    => 'submitbutton',
            ],
        ]);
    }
}

এখানে, আমরা একটি Submit Button তৈরি করেছি, যার ভ্যালু হচ্ছে Submit এবং id হচ্ছে submitbutton


ফর্মে ইনপুট, সিলেক্ট, এবং বাটন ব্যবহার করা

এখন, এই ফর্মটি কন্ট্রোলার থেকে রেন্ডার করা এবং ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, UserController এ ফর্মটি ইনস্ট্যান্সিয়েট করে ভিউতে পাঠানো হবে।

Controller Example:

<?php
namespace Application\Controller;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use Application\Form\UserForm;

class UserController extends AbstractActionController
{
    public function addAction()
    {
        $form = new UserForm();
        
        // যদি ফর্ম সাবমিট করা হয়
        $request = $this->getRequest();
        if ($request->isPost()) {
            // ফর্মের ভ্যালিডেশন প্রক্রিয়া এখানে হবে
        }

        return new ViewModel([
            'form' => $form,
        ]);
    }
}

এখানে, UserForm ক্লাসটি addAction এ ব্যবহার করা হচ্ছে, এবং ফর্মের ইনপুট, সিলেক্ট, এবং বাটন এলিমেন্টগুলো ভিউতে পাঠানো হচ্ছে।


ভিউতে ফর্ম রেন্ডার করা

ভিউতে ফর্মটি রেন্ডার করার জন্য, আপনি form ভিউ হেলপার ব্যবহার করতে পারেন। এটি সব ফর্ম এলিমেন্ট এবং তাদের লেবেল, ভ্যালিডেশন, এবং অন্যান্য ট্যাগ অটোমেটিকভাবে রেন্ডার করবে।

view script (e.g., add.phtml):

<h1>Add User</h1>
<form method="post">
    <?php echo $this->form()->openTag($form); ?>
    <?php echo $this->formRow($form->get('name')); ?>
    <?php echo $this->formRow($form->get('email')); ?>
    <?php echo $this->formRow($form->get('password')); ?>
    <?php echo $this->formRow($form->get('country')); ?>
    <?php echo $this->formRow($form->get('submit')); ?>
    <?php echo $this->form()->closeTag(); ?>
</form>

এখানে, আমরা ফর্মের প্রতিটি এলিমেন্ট (name, email, password, country, submit) রেন্ডার করেছি।


সারাংশ

Zend Framework এ ফর্ম এলিমেন্টস তৈরি এবং ব্যবহারের মাধ্যমে আপনি সহজেই ইনপুট ফিল্ড, সিলেক্ট বক্স এবং বাটন তৈরি করতে পারেন। Zend\Form\Element\Text, Zend\Form\Element\Select, এবং Zend\Form\Element\Submit এর মতো এলিমেন্টগুলো ব্যবহার করে ফর্ম তৈরি করা সহজ। ফর্মটি কন্ট্রোলার থেকে রেন্ডার করে ভিউতে পাঠানো হয়, যেখানে ইউজার ইনপুট সংগ্রহ করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...