You are currently viewing تگ فرم

تگ فرم

فرم‌ها یکی از پرکاربردترین عناصر صفحات وب هستند که باعث ایجاد تعامل بین کاربر و سامانه سرور می‌شوند. حتما افرادی که از اینترنت، سایت‌ها و شبکه‌های اجتماعی استفاده می‌کنند تجربه کار با فرم‌ها دارند. با استفاده از فرم‌ها می‌توان اطلاعاتی را به سمت سرور ارسال کرده، پس از پردازش نتیجه یا عملکرد خاصی را از سامانه سرور انتظار داشت. برای ایجاد فرم‌ها از تگ فرم استفاده می‌شود. اما فرم‌ها به تنهایی نمی‌توانند نیاز کاربر را برطرف نمایند. لذا درون فرم‌ها عناصری مانند فیلدها و دکمه‌ها نیز تعریف می‌شوند.

صفت‌های اصلی

یک تگ فرم دارای دو صفت اصلی است که باید همواره در کنار تگ اصلی به کار برد. شکل کلی این برچسب به صورت زیر است :

<form action="آدرسی که اطلاعات فرم به آن ارسال می‌شوند" method="روش ارسال اطلاعات">
  ...
</form>

نکته : به جای سه نقطه (…) اجزا و عناصر فرم شامل فیلدها، دکمه‌ها و … استفاده می‌شوند که در مطالب آتی توضیح داده خواهد شد.

صفت action

درون این صفت یک URL تعریف می‌شود و آدرسی است که قرار است اطلاعات درون فرم به آن ارسال شوند. این آدرس به دو صورت مطلق و نسبی قابل تعریف است.

صفت method

این صفت نیز نحوه ارسال اطلاعات را تعریف می‌کند. این صفت همواره یکی از دو مقدار get یا post را دریافت می‌کند.

مقدار get

اگر اطلاعات ارسالی حساس نبوده و دسترسی به آنها توسط دیگران موجب مشکلات امنیتی نمی‌شود، از طرفی این اطلاعات ارسالی دارای حجم پایینی می‌باشد نحوه ارسال به صورت get تعریف می‌شود. در این حالت، تمامی مقادیر ارسالی به صورت پارامترهای URL تعریف شده و در نوار آدرس قابل مشاهده خواهند بود.

حد اکثر تعداد کاراکترهایی که می‌توان با این مقدار ارسال کرد چیزی در حدود 2000 کاراکتر است. لذا معمولا برای ارسال اطلاعات فیلدهای متنی فرم استفاده می‌شوند.

مقدار post

بر خلاف مقدار get از این مقدار برای ارسال اطلاعات حساس مانند رمزها استفاده می‌شود. در این روش، اطلاعات فرم به صورت درخواست‌های HTTP ارسال شده و در نتیجه در نوار آدرس مقادیر ارسالی قابل دیدن نخواهد بود.

در این نحوه ارسال، تعداد کاراکتر مطرح نبوده و بر مبنای حجم داده‌ها این ارسال صورت می‌گیرد. معمولا به صورت پیش‌فرض حجم اطلاعات ارسالی فرم چیزی در حدود 2 مگابایت است که در تنظیمات سرور می‌توان این مقدار را تغییر داد.

این روش ارسال برای ارسال متن و فایل‌ها مناسب است.

تگ فرم زیر، اطلاعات فرم را از روش get به فایل save.php ارسال می‌کند.

<form action="save.php" method="get">
  ...
</form>

سایر صفت‌ها

صفت enctype

برخی موارد ممکن است بخواهیم فایلی اعم از عکس، فیلم، صدا و هر نوع سند دیگر را از طریق فرم به سرور ارسال نماییم. در این حالت حتما صفت method برابر post خواهد بود. اما در کنار آن، صفتی به نام enctype نیز باید تعریف شود که روش کدگذاری داده‌های ارسالی فرم را تعریف می‌کند.

این صفت دارای مقدار پیش‌فرض application/x-www-form-urlencoded است. در این حالت، اگر بخواهیم اطلاعاتی ارسال نماییم، تمامی کاراکترهای Space به کاراکتر + تغییر کرده و سایر کاراکترهای ویژه به کدهای هگزادسیمال اسکی کدگذاری می‌شوند.

اما اگر بخواهیم فایلی نیز ضمیمه اطلاعات ارسالی نماییم باید مقدار این صفت multipart/form-data باشد. در این روش، یک فایل به چند بسته اطلاعاتی تقسیم شده و ارسال می‌شوند. سپس توسط سرور به صورت موقت در فضایی ذخیره شده و پس از ارسال کامل، بسته‌های داده با هم ترکیب و فایل اصلی را شکل می‌دهند.

همچنین اگر مقدار این صفت text/plain باشد، در این صورت بدون هیچ کدگذاری، داده‌های فرم ارسال خواهند شد.

کد زیر فرمی با قابلیت ارسال فایل را نمایش می‌دهد.

<form action="upload.php" method="post" enctype="multipart/form-data">
  ...
</form>

صفت autocomplete

احتمالا شما نیز هنگام کار با فرم‌ها متوجه شده‌اید که اگر قبلا فرمی را تکمیل کرده باشید و بعدا هم بخواهید فیلدهای همان فرم را دوباره پر کنید، اطلاعات قبلی شما در مرورگر ذخیره شده و فیلدها به صورت خودکار تکمیل می‌شوند. این صفت تعیین می‌کند که یک فرم قابلیت تکمیل خودکار اطلاعات فیلدها را دارا باشد یا خیر.

این صفت دو مقدار on یا off می‌گیرد. در صورتی که off باشد حالت تکمیل خودکار فیلدها متوقف خواهد شد. مقدار پیش‌فرض آن on است.

<form action="save.php" method="get" autocomplete="off">
  ...
</form>

صفت target

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

_top | _parent | _blank | _self

نکته : برای آشنایی با تگ‌های iframe به این مطلب مراجعه نمایید.

صفت novalidate

در مبحث فیلدها، می‌توان برای هر فیلد قوانینی تعریف کرد که اگر کاربر هنگام تکمیل آن فیلد آن قوانین را رعایت نکرد، امکان ارسال اطلاعات (Submit) میسر نباشد.

مثلا برای فیلد کد ملی می‌توان قانون تعداد 10 کاراکتر در نظر گرفت. اگر کاربر کمتر یا بیشتر از 10 کاراکتر درج کرد، امکان ارسال اطلاعات مقدور نشود.

اگر فرمی صفت novalidate داشته باشد، بدون در نظر گرفتن قوانین فیلدها، اطلاعات ارسال خواهند شد. این صفت به صورت بدون مقدار می‌باشد.

در کنار این صفت‌ها، صفت‌های کم‌کاربردی مانند accept-charset، name و rel نیز وجود دارند. برای آشنایی بیشتر با این صفت‌ها به لینک زیر مراجعه نمایید.

https://www.w3schools.com/html/html_forms_attributes.asp

دیدگاهتان را بنویسید