🧩 خصائص النماذج في HTML: أدوات التحكم الأساسية
مرحباً بك مجدداً في رحلتك مع HTML! في الدرس السابق، تعلمنا كيفية بناء هيكل النموذج الأساسي باستخدام الوسم <form>. اليوم، سنتعمق أكثر ونتعرف على الخصائص (Attributes) التي تجعل هذا النموذج ذكياً وقابلاً للاستخدام. فكر في هذه الخصائص كإعدادات تتحكم في: أين تُرسل البيانات؟، كيف تُرسل؟، وماذا يحدث بعد الإرسال؟ 🚀
هذه الخصائص هي ما يحول الصندوق الفارغ إلى أداة اتصال فعالة بين المستخدم والخادم.
📤 الخاصية action: أين تذهب البيانات؟
الخاصية action هي الأهم على الإطلاق. فهي تحدد عنوان URL لصفحة الخادم أو السكريبت الذي سيتلقى البيانات المعبأة في النموذج ويعالجها.
<form action="/submit-contact.php">
<!-- محتويات النموذج هنا -->
</form>
في هذا المثال، عند الضغط على زر الإرسال، سيتم إرسال جميع بيانات النموذج إلى الملف الموجود على الخادم باسم submit-contact.php لمعالجتها (مثل حفظها في قاعدة بيانات أو إرسالها بريداً إلكترونياً).
ماذا لو تركت action فارغة؟
<form action="">
<!-- أو يمكن حذفها تماماً: <form> -->
</form>
في هذه الحالة، سيتم إرسال البيانات إلى نفس الصفحة الحالية. هذا مفيد عندما يكون كود معالجة النموذج (مكتوباً بلغة مثل PHP أو Python) موجوداً في نفس صفحة HTML.
📨 الخاصية method: طريقة الإرسال (GET أم POST)
كيف تنتقل البيانات عبر الإنترنت؟ هنا يأتي دور method. لها قيمتان رئيسيتان:
method="get": تُلصق البيانات في نهاية عنوان URL نفسه. تشبه إضافة بحث في جوجل.عند إدخال "html" والضغط على بحث، سيتحول الرابط إلى شيء مثل:<form action="/search" method="get"> <input type="text" name="query"> <button type="submit">ابحث</button> </form>/search?query=html. هذه الطريقة مناسبة للبحوث، مرئية للجميع، ولها حد في طول البيانات.method="post": ترسل البيانات في "خلفية" الطلب، دون ظهورها في شريط العنوان. هذه هي الطريقة الافتراضية والأكثر أماناً لإرسال البيانات الحساسة (كلمات المرور، معلومات الدفع) أو الكبيرة (مثل رفع الملفات).🔐 القاعدة الذهبية: استخدم<form action="/login" method="post"> <input type="password" name="user_password"> <button type="submit">تسجيل الدخول</button> </form>POSTللبيانات الحساسة أو التي تغير شيئاً على الخادم (مثل إضافة مستخدم جديد). استخدمGETللطلبات التي لا تغير بيانات (مثل البحث أو التصفية).
🪟 الخاصية target: أين تفتح الاستجابة؟
تتحكم target في مكان فتح صفحة الاستجابة القادمة من الخادم بعد إرسال النموذج. تشبه خاصية target في الروابط (<a>).
<form action="/submit" method="post" target="_blank">
<!-- محتويات النموذج -->
</form>
القيم الشائعة:
_self(الافتراضي): تفتح الاستجابة في نفس النافذة/التبويب._blank: تفتح الاستجابة في نافذة أو تبويب جديد. مفيد إذا أردت أن يبقى المستخدم على صفحة النموذج الأصلية._parent,_top: تُستخدم مع الإطارات (Frames) وهي أقل شيوعاً اليوم.
🛡️ خصائص التحسين والأمان
هناك خصائص أخرى تجعل نموذجك أكثر ذكاءً وملاءمة للمستخدم:
autocomplete: تتحكم في خاصية الإكمال التلقائي للمتصفح.<form autocomplete="on"> <!-- الإفتراضي، يسمح بالإكمال التلقائي --> <form autocomplete="off"> <!-- يعطل الإكمال التلقائي لحقول مثل كلمة المرور لمرة واحدة -->novalidate: تعطل عملية التحقق من صحة البيانات (Validation) المدمجة في المتصفح قبل الإرسال. تستخدم عندما تريد تنفيذ التحقق بنفسك باستخدام JavaScript.<form novalidate> <input type="email" required> <!-- لن يظهر تحذير المتصفح "أدخل بريداً إلكترونياً صالحاً" --> </form>nameوidللنموذج: تماماً مثل أي عنصر HTML، يمكنك إعطاء النموذج اسمnameومعرف فريدid.idمهم للربط مع CSS وJavaScript، بينماnameقد يستخدم في بعض سياقات البرمجة من طرف الخادم.<form id="contactForm" name="contactForm" action="/send"> </form>
🧪 مثال عملي متكامل
لنجمع كل ما تعلمناه في نموذج اتصال بسيط:
<!DOCTYPE html>
<html>
<head>
<title>اتصل بنا</title>
</head>
<body>
<h2>📞 نموذج الاتصال</h2>
<!-- النموذج يرسل البيانات بطريقة آمنة (POST) إلى سكريبت معالجة، ويفتح الرد في نافذة جديدة -->
<form action="process-contact.php" method="post" target="_blank" autocomplete="on">
<label for="user_name">الاسم الكامل:</label>
<input type="text" id="user_name" name="full_name" required>
<br><br>
<label for="user_email">البريد الإلكتروني:</label>
<input type="email" id="user_email" name="email_address" required>
<br><br>
<label for="user_msg">رسالتك:</label>
<textarea id="user_msg" name="message"></textarea>
<br><br>
<button type="submit">إرسال الرسالة</button>
</form>
</body>
</html>
🎯 ملخص الدرس
تعلمنا اليوم أن خصائص النموذج هي مفاتيح التحكم في مصير البيانات:
action: العنوان الهدف.method: طريقة الرحلة (GET مرئية، POST سرية).target: نافذة الوصول للرد.- خصائص مساعدة مثل
autocompleteوnovalidate.
بمعرفة هذه الخصائص، أصبح نموذجك جاهزاً من الناحية الهيكلية للتواصل مع الخادم. 👏
ماذا سنتعلم في الدرس القادم؟ 🚀
الآن وبعد أن بنينا النموذج وعرّفنا خصائصه الرئيسية، حان الوقت لملء هذا النموذج بمحتوياته! في الدرس القادم، سنبدأ رحلة استكشاف عناصر إدخال البيانات في HTML مثل <input> بأنواعه المختلفة (نص، كلمة مرور، تاريخ، راديو، اختبار)، بالإضافة إلى <textarea> و <select>. ستتعلم كيف تخلق حقولاً تفاعلية تجمع من المستخدم exactly ما تريد. استعد لتصميم نماذج غنية ومفيدة!
🎓 اختبر نفسك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال