• 3.1.9
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

فایل هلپرفانکشن Form حاوی فانکشن‌هایی است که به شما در کار با فرم‌ها را می‌دهد.

نحوه بارگذاری این هلپرفانکشن

با کد زیر می‌توانید این هلپرفانکشن را لود کنید:

$this->load->helper('form');

Escape کردن مقادیر فیلدها

گاهی ممکن است لازم باشد از کدهای HTML و کاراکترهایی مانند نقل‌قول‌ها در عناصر فرم استفاده کنید. برای انجام این کار به صورت امن، باید از فانکشن عمومی html_escape() استفاده کنید.

به مثال زیر توجه کنید:

$string = 'Here is a string containing "quoted" text.';

<input type="text" name="myfield" value="<?php echo $string; ?>">

از آنجایی که استرینگ فوق دارای مجموعه‌ای از نقل‌قول‌ها است، این کد باعث خرابی عنصر فرم می‌شود. در input بالا مقدار اتریبیوت value برابر Here is a string containing خواهد بود. فانکشن html_escape() کاراکترهای خاص HTML را تبدیل می‌کند، بنابراین می‌توانند به صورت امن استفاده شوند:

$string = 'Here is a string containing "quoted" text.';

<input type="text" name="myfield" value="<?php echo html_escape($string); ?>">

توجه

اگر از هر کدام از هلپرفانکشن‌های Form که در این پست آورده شده‌اند، استفاده کنید، مقادیر فرم به صورت خودکار escape خواهند شد، بنابراین نیازی به فراخوانی این فانکشن نخواهید داشت. تنها در صورتی از این فانکشن استفاده کنید که عناصر فرم شخصی خودتان را ساخته و استفاده می‌کنید.

فانکشن‌های موجود

با لود این هلپر، فانکشن‌های زیر در دسترس خواهند بود:

form_open([$action = ''[, $attributes = ''[, $hidden = array()]]])
پارامترها
  • $action نوع استرینگ - استرینگی که URI اکشن یا همان تارگت فرم را نشان می‌دهد که فرم به آن URI سابمیت خواهد شد
  • $attributes نوع آرایه - اتریبوت‌های HTML
  • $hidden نوع آرایه - آرایه‌ای که فیلدهای hidden در آن تعریف شده‌اند
مقدار بازگشتی تگ آغازین یک فرم به همراه فیلدهای hidden
نوع مقدار بازگشتی
استرینگ

بر اساس URL ساخته شده از تنظیمات فایل config، یک تگ آغازین فرم (opening form tag) می‌سازد. امکان اختیاری دیگری که این فانکشن ارائه می‌دهد، افزودن اتریبیوت‌های فرم و فیلدهای input از نوع hidden است و همیشه اتریبیون accept-charset را مطابق با مقدار charset در فایل config اضافه می‌کند.

مزیت اصلی استفاده از این تگ به جای هاردکد نوشتن کدهای HTML، این است که استفاده از این تگ، در صورت تغییر URLها امکان انتقال‌پذیری بیشتری به سایت شما می‌دهد.

به مثال ساده زیر توجه کنید:

echo form_open('email/send');

مثال بالا یک فرم ایجاد می‌کند که به URL پایه شما به اضافه سگمنت "email/send" در URL اشاره دارد، مانند این:

افزودن اتریبیوت

فیلدهای hidden با پاس دادن یک آرایه انجمنی به پارامتر سوم، می‌توانند به فرم اضافه شوند، مانند این:

$hidden = array('username' => 'Joe', 'member_id' => '234');
echo form_open('email/send', '', $hidden);

برای skip کردن پارامتر دوم، به آن یک مقدار false (مثلا استرینگ خالی یا آرایه خالی) بدهید.

مثال بالا فرمی مشابه زیر تولید می‌کند:

<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send">
        <input type="hidden" name="username" value="Joe" />
        <input type="hidden" name="member_id" value="234" />
form_open_multipart([$action = ''[, $attributes = array()[, $hidden = array()]]])
پارامترها
  • $action نوع استرینگ - استرینگی که URI اکشن یا همان تارگت فرم را نشان می‌دهد که فرم به آن URI سابمیت خواهد شد
  • $attributes نوع آرایه - اتریبوت‌های HTML
  • $hidden نوع آرایه - آرایه‌ای که فیلدهای hidden در آن تعریف شده‌اند
مقدار بازگشتی تگ آغازین یک فرم به همراه فیلدهای hidden
نوع مقدار بازگشتی استرینگ

این فانکشن کاملا با form_open() یکسان است، تنها تفاوتی که دارد این است که این فانکشن یک اتریبیوت multipart (یعنی enctype="multipart/form-data") به فرم اضافه می‌کند، که هنگامی که می‌خواهید با استفاده از فرم خود فایل آپلود کنید، استفاده از این اتریبیوت ضروری است.

form_hidden($name[, $value = ''])
پارامترها
  • $name نوع استرینگ - نام فیلد
  • $value نوع استرینگ - مقدار (value) فیلد
مقدار بازگشتی تگ HTML مربوط به فیلد input از نوع hidden
نوع مقدار بازگشتی استرینگ

امکان ساخت فیلدهای hidden را فراهم می‌آورد. با استفاده از پارامترها نیز می‌توانید مقدار اتریبیوت‌های مشخص شده را تعیین کنید:

form_hidden('username', 'johndoe');
// Would produce: <input type="hidden" name="username" value="johndoe" />

و یا با ارسال یک آرایه انجمنی به این فانکشن، با یک بار فراخوانی این فانکشن می‌توانید چندین فیلد hidden ایجاد کنید:

$data = array(
        'name'  => 'John Doe',
        'email' => 'john@example.com',
        'url'   => 'http://example.com'
);

echo form_hidden($data);

/*
        Would produce:
        <input type="hidden" name="name" value="John Doe" />
        <input type="hidden" name="email" value="john@example.com" />
        <input type="hidden" name="url" value="http://example.com" />
*/

همچنین می‌توانید یک آرایه انجمنی را به value فیلد پاس دهید:

$data = array(
        'name'  => 'John Doe',
        'email' => 'john@example.com',
        'url'   => 'http://example.com'
);

echo form_hidden('my_array', $data);

/*
        Would produce:

        <input type="hidden" name="my_array[name]" value="John Doe" />
        <input type="hidden" name="my_array[email]" value="john@example.com" />
        <input type="hidden" name="my_array[url]" value="http://example.com" />
*/

اگر می‌خواهید اتریبیوت‌های بیشتری را به فیلد hidden خود اضافه کنید، کافی است اتریبیوت‌ها را به صورت آرایه انجمنی به پارامتر اول فانکشن پاس دهید:

$data = array(
        'type'  => 'hidden',
        'name'  => 'email',
        'id'    => 'hiddenemail',
        'value' => 'john@example.com',
        'class' => 'hiddenemail'
);

echo form_input($data);

/*
        Would produce:

        <input type="hidden" name="email" value="john@example.com" id="hiddenemail" class="hiddenemail" />
*/
form_input([$data = ''[, $value = ''[, $extra = '']]])
پارامترها
  • $data نوع mixed (بیش از یک نوع می‌تواند باشد) - داده‌های مربوط به اتریبیوت‌های فیلد
  • $value نوع استرینگ - مقدار فیلد
  • $extra نوع mixed (بیش از یک نوع می‌تواند باشد) - اتربیوت‌های اضافی برای افزودن به تگ با کمک یک آرایه یا استرینگ
مقدار بازگشتی تگ HTML مربوط به فیلد input
نوع مقدار بازگشتی استرینگ

با استفاده از این فانکشن می‌توان یک فیلد input استاندارد از نوع text تولید کرد. با حداقل پاس دادن نام و مقدار فیلد به دو پارامتر اول و دوم می‌توانید فیلد مورد نظر خود را بسازید:

echo form_input('username', 'johndoe');

یا با ارسال یک آرایه انجمنی حاوی هر داده‌ای که مایل هستید در فیلد قرار دهید، فیلد را بسازید:

$data = array(
        'name'          => 'username',
        'id'            => 'username',
        'value'         => 'johndoe',
        'maxlength'     => '100',
        'size'          => '50',
        'style'         => 'width:50%'
);

echo form_input($data);

/*
        Would produce:

        <input id="username" style="width: 50%;" maxlength="100" name="username" size="50" type="text" value="johndoe" />
*/

اگر می‌خواهید داده‌های بیشتری مانند کدهای جاوااسکریپت در فیلد خود داشته باشید، داده مورد نظر خود را به شکل یک استرینگ به پارامتر سوم این فانکشن پاس دهید:

$js = 'onClick="some_function()"';
echo form_input('username', 'johndoe', $js);

یا داده‌های خود را به صورت آرایه انجمنی به این فانکشن ارسال کنید:

$js = array('onClick' => 'some_function();');
echo form_input('username', 'johndoe', $js);
form_password([$data = ''[, $value = ''[, $extra = '']]])
پارامترها
  • $data نوع mixed (بیش از یک نوع می‌تواند باشد) - داده‌های مربوط به اتریبیوت‌های فیلد
  • $value نوع استرینگ - مقدار فیلد
  • $extra نوع mixed (بیش از یک نوع می‌تواند باشد) - اتربیوت‌های اضافی برای افزودن به تگ با کمک یک آرایه یا استرینگ
مقدار بازگشتی تگ مربوط به فیلد input از نوع password
نوع مقدار بازگشتی استرینگ

همه چیز این فانکشن مشابه فانکشن form_input() است، تنها تفاوت آن این است که type فیلد تولید شده توسط این فانکشن password است.

form_upload([$data = ''[, $value = ''[, $extra = '']]])
پارامترها
  • $data نوع mixed (بیش از یک نوع می‌تواند باشد) - داده‌های مربوط به اتریبیوت‌های فیلد
  • $value نوع استرینگ - مقدار فیلد
  • $extra نوع mixed (بیش از یک نوع می‌تواند باشد) - اتربیوت‌های اضافی برای افزودن به تگ با کمک یک آرایه یا استرینگ
مقدار بازگشتی تگ مربوط به فیلد input از نوع file که برای آپلود فایل استفاده می‌شود
نوع مقدار بازگشتی استرینگ

همه چیز این فانکشن مشابه فانکشن form_input() است، تنها تفاوت آن این است که type فیلد تولید شده توسط این فانکشن file است که به این فیلد امکان استفاده برای آپلود فایل را می‌دهد.

form_textarea([$data = ''[, $value = ''[, $extra = '']]])
پارامترها
  • $data نوع mixed (بیش از یک نوع می‌تواند باشد) - داده‌های مربوط به اتریبیوت‌های فیلد
  • $value نوع استرینگ - مقدار فیلد
  • $extra نوع mixed (بیش از یک نوع می‌تواند باشد) - اتربیوت‌های اضافی برای افزودن به تگ با کمک یک آرایه یا استرینگ
مقدار بازگشتی تگ مربوط به فیلد textarea
نوع مقدار بازگشتی استرینگ
همه چیز این فانکشن مشابه فانکشن form_input() است، تنها تفاوت آن این است که فیلد تولید شده توسط این فانکشن با تگ textarea است.

توجه

به جای اتریبیوت‌های maxlength و size در مثال بالا، از cols و rows استفاده کنید.

اصطلاحات مرتبط در واژه‌نامه: پروتکل انتقال ابرمتن

مطالعه مرتبط در همین مجموعه

سایر پست های داکیومنت